我是angularjs的新手。目前我正在使用angularjs和mvc4构建spa。 我可以在angularjs的不同视图中使用$ scope变量吗? Plz帮助我。
答案 0 :(得分:0)
$ scope仅限于控制器。尝试使用$rootScope。
答案 1 :(得分:0)
要在不同的控制器之间传递变量,请注册factory
,然后将工厂对象传递给每个控制器中的$ scope。
简单演示http://plnkr.co/edit/PdDmUz?p=preview
更新:另一个演示,显示使用service / factory在不同视图中使用单个变量。 http://plnkr.co/edit/P2UudS?p=preview
的index.html
<body ng-controller="MainCtrl">
<h3>Controller 1</h3>
Check me, to check both:
<input type="checkbox" ng-model="selected.data" />
<pre>selected.data: {{selected.data}}</pre>
<h3>Controller 2</h3>
<div ng-controller="MainCtrl2">
Or, check me:
<input type="checkbox" ng-model="selected2.data" />
<pre>selected2.data: {{selected2.data}}</pre>
</div>
</body>
app.js
app.controller('MainCtrl', function($scope,uiFieldState) {
$scope.selected = uiFieldState.uiObject;
})
app.controller('MainCtrl2', function($scope,uiFieldState) {
$scope.selected2 = uiFieldState.uiObject;
})
app.factory('uiFieldState', function () {
return {uiObject: {data: null} }
});
答案 2 :(得分:-1)
Angular $ scope是为子范围原型继承的,因此基本上你可以拥有一个父$ scope,它在几个子范围之间共享。
<div ng-controller="parentController">
<div ng-include="view1.html"></div>
<div ng-include="view2.html"></div>
</div>
这两个视图都可以访问parentController
。