简单的问题:如何在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/
答案 0 :(得分:133)
ng-init
不起作用。使用
{{myVariable=whatever;""}}
尾随""
会阻止正在评估的Angular表达式为任何文本。
然后,您只需致电{{myVariable}}
即可输出您的变量值。
我发现这在迭代多个嵌套数组时非常有用,我希望将当前的迭代信息保存在一个变量中,而不是多次查询。
答案 1 :(得分:79)
ngInit
可以帮助初始化变量。
<div ng-app='app'>
<div ng-controller="MyController" ng-init="myVar='test'">
{{myVar}}
</div>
</div>
<强> jsfiddle example 强>
答案 2 :(得分:19)
使用
创建名为myVar
的指令
scope : { myVar: '@' }
并将其称为:
<div name="my_map" my-var="Richmond,VA">
请特别注意带有连字符标记名称的指令中的驼峰案例引用。
有关详细信息,请参阅此处的“了解转化和范围”: - http://docs.angularjs.org/guide/directive
Here's a Fiddle显示如何在指令中以各种不同的方式将值从属性复制到范围变量。
答案 3 :(得分:10)
您可以像这样设置html中的值。 我不认为有角度的直接解决方案。
<div style="visibility: hidden;">{{activeTitle='home'}}</div>
答案 4 :(得分:3)
您可以使用# Vote class.
class vote {
public $newsID;
private $db;
# Construct.
public function __construct($_database)
{
$this->db = $_database;
}
}
$_database = new Database();
$news = new News($_database);
,如下所示
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>
答案 5 :(得分:1)
$scope.$watch('myVar', function (newValue, oldValue) {
if (typeof (newValue) !== 'undefined') {
$scope.someothervar= newValue;
//or get some data
getData();
}
}, true);
变量在控制器之后初始化,因此您需要监视它以及何时初始化使用它。
答案 6 :(得分:0)
我喜欢这个答案,但我认为你创建一个全局范围函数会更好,你可以设置所需的范围变量。
所以在globalController中创建
$scope.setScopeVariable = function(variable, value){
$scope[variable] = value;
}
然后在你的html文件中调用它
{{setScopeVariable('myVar', 'whatever')}}
这将允许您在各自的控制器中使用$ scope.myVar
答案 7 :(得分:0)
如果你不在循环中,你可以使用ng-init,否则你可以使用
router.post('/register', passport.authenticate('local-signup', {
successRedirect: '/dashboard', // redirect to the secure profile section
failureRedirect: '/register', // redirect back to the signup page if there is an error
}));
&#34;&#34;&#34;&#34; alows不显示你的var
答案 8 :(得分:0)
您可以在隐藏字段中使用ng-value指令,如下所示:-
<input type="hidden" ng-value="myScopeVar = someValue"/>
这会将范围变量(myScopeVar)的值设置为“ someValue”