所以我有这种情况,我有两个意见。一个视图需要来自用户的多个输入,第二个视图显示执行一些计算后的输入结果。由于这两个视图都属于不同的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