所以我有這種情況,我有兩個意見。一個視圖需要來自用戶的多個輸入,第二個視圖顯示執行一些計算後的輸入結果。由於這兩個視圖都屬於不同的div,所以我必須爲它們分別定義相同的ng控制器。angularjs使用單個控制器與兩個視圖
現在的問題是輸入視圖中的更改沒有反映在輸出視圖中。
var app = angular.module("app", []);
app.controller('controller',function ($scope) {
$scope.val1 = 10;
$scope.val2 = 0;
$scope.val3 = 0;
$scope.val4 = 0;
$scope.cal = function() {
return parseInt($scope.val1) + parseInt($scope.val2) + parseInt($scope.val3) + parseInt($scope.val4);
}
});
<!DOCTYPE html>
<html>
<head><script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-app="app">
<form action="#" ng-controller="controller">
\t \t <input type="text" ng-model="val1"><br>
\t \t <input type="text" ng-model="val2"><br>
\t \t <input type="text" ng-model="val3"><br>
\t \t <input type="text" ng-model="val4"><br>
\t \t Self:{{cal()}}
\t </form>
\t <div ng-controller="controller">
\t Other:{{cal()}}
\t </div>
</body>
</html>
現在我可以使它通過重新定義所有VAL1,VAL2,VAL3和VAL4輸入作爲隱藏在輸出視圖,但是,其爲醜陋溶液與冗餘代碼工作。什麼是正確的做法。
更新: 我的觀點是彼此相距很遠,並有很多代碼在他們之間生活。我不想找到一個共同的祖先div,並將它分配給控制器,因爲它將嵌套與它們之間的視圖相關聯的其他控制器。這將使我的情況複雜化。
謝謝。對不起,我可以自己搜索它,這個問題正是我所要求的。 – Haider