2014-02-19 35 views
-1

我是新来angularjs.presently我建立spa使用angularjs和mvc4。 我可以在angularjs的不同视图中使用$ scope变量吗? Plz帮助我。

+0

你可以在你的变量存储在服务或在rootScope,服务优选作为污染rootScope是角度不好的做法。 –

+0

增加了另一个演示,显示不同视图中的单个变量 – cheekybastard

回答

0

$ scope仅限于控制器。尝试使用$rootScope

-1

Angular $ scope是原型继承的子范围,因此基本上可以有一个父$范围,它在几个子范围之间共享。

<div ng-controller="parentController"> 
    <div ng-include="view1.html"></div> 
    <div ng-include="view2.html"></div> 
</div> 

这里parentController可以被两个视图访问。

+0

为什么-1 ........? –

0

要在不同控制器之间通信变量,请注册factory,然后在每个控制器中将工厂对象传递给$ scope。

简单的演示http://plnkr.co/edit/PdDmUz?p=preview

更新:另一个演示中,表示使用服务/工厂不同视图单可变使用。 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} } 
}); 
+0

我的问题是如何使用单个$ scope变量在不同的视图中使用不同的controller.For示例我有一个Employee控制器和两个视图Employeelist.html和EmployeeDetails.html.In雇员控制器我有两个范围变量$ scope.Employeelist使用在EmployeeList和$ scope.Employee中使用EmployeeDetails.html .But在我的情况下,EmployeeDetails.html不能绑定到$ scope.candidate.I已经检查了Batarang.Data从服务器正常到来。 – amitabha

+0

工厂会将变量传递给另一个视图中的单个$作用域。不同的视图必须有一个$ scope的控制器,所以我发布的内容将起作用。 – cheekybastard

相关问题