在标记中设置angular度范围variables

简单的问题:我怎样才能在HTML中设置范围值,由我的控制器读取?

var app = angular.module('app', []); app.controller('MyController', function($scope) { console.log($scope.myVar); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app='app'> <div ng-controller="MyController" app-myVar="test"> {{myVar}} </div> </div> 

JSFiddle: http : //jsfiddle.net/ncapito/YdQcX/

在循环内分配variables时, ng-init不起作用。 使用{{myVariable=whatever;""}}

结尾的""停止对任何文本进行评估的Angularexpression式。

然后你可以直接调用{{myVariable}}来输出你的variables值。

当迭代多个嵌套数组时,我发现这非常有用,我想将当前的迭代信息保存在一个variables中而不是多次查询。

ngInit可以帮助初始化variables。

 <div ng-app='app'> <div ng-controller="MyController" ng-init="myVar='test'"> {{myVar}} </div> </div> 

jsfiddle的例子

创build一个名为myVar的指令

 scope : { myVar: '@' } 

并像这样调用它:

 <div name="my_map" my-var="Richmond,VA"> 

特别注意指令中的骆驼大小写引用对连字符标签名称。

有关更多信息,请参阅“理解转换和范围”: http : //docs.angularjs.org/guide/directive

这是一个小提琴 ,它展示了如何在指令中以各种不同的方式将值从属性复制到范围variables。

你可以像这样从html中设置值。 我不认为有angular度的直接解决scheme。

  <div style="visibility: hidden;">{{activeTitle='home'}}</div> 

你可以使用ng-init ,如下所示

 <div class="TotalForm"> <label>B/W Print Total</label> <div ng-init="{{BWCount=(oMachineAccounts|sumByKey:'BWCOUNT')}}">{{BWCount}}</div> </div> <div class="TotalForm"> <label>Color Print Total</label> <div ng-init="{{ColorCount=(oMachineAccounts|sumByKey:'COLORCOUNT')}}">{{ColorCount}}</div> </div> 

然后在其他部分使用本地作用域variables:

 <div>Total: BW: {{BWCount}}</div> <div>Total: COLOR: {{ColorCount}}</div> 

我喜欢这个答案,但是我认为最好是创build一个全局作用域函数,它允许你设置需要的作用域variables。

所以在globalController中创build

 $scope.setScopeVariable = function(variable, value){ $scope[variable] = value; } 

然后在你的html文件中调用它

 {{setScopeVariable('myVar', 'whatever')}} 

这将允许您在各自的控制器中使用$ scope.myVar

 $scope.$watch('myVar', function (newValue, oldValue) { if (typeof (newValue) !== 'undefined') { $scope.someothervar= newValue; //or get some data getData(); } }, true); 

variables初始化后控制器,所以你需要监视它,当它没有初始化使用它。