在 HTML 模板中使用短划线绑定范围属性
binding scope property with a dash in html template
出于某种原因,我必须在像test-name
这样的属性中使用破折号,并且不能使用testName
或testname
:
angular.module('testApp')
.controller('TestController',function($scope){
//neither 'testname' nor 'testName', only 'test-name'
$scope['test-name'] = 'Test name...';
});
现在我想在 html 模板中绑定它:
<div ng-controller="TestController">
This is {{test-name}}
</div>
我也尝试过{{testname}}
和{{testName}}
但不起作用。保持$scope['test-name']
有什么办法吗?
目前,这会产生如下结果:
This is 0
但预期的结果是这样的:
This is Test name...
试试这个,它应该可以工作:
<div ng-controller="TestController">
This is {{this['test-name']}}
</div>
这是因为
当{{test-name}}
被$parseProvider
解析并以角度Lexer
时,-
被重新识别为减号运算符。
https://github.com/angular/angular.js/blob/master/src/ng/parse.js#L1005
{{this['test-name']}}
应该有效
相关文章:
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- Angularjs无法将单选按钮与嵌套范围内的模型绑定
- AngularJS绑定没有'在没有填充父范围的情况下无法工作
- 对于使用传递的数据计算的局部范围变量,角度绑定在自定义指令中不起作用
- Knockout.js绑定范围
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- 如何使用JavaScript/Jquery/Knockout JS将数字数组绑定到范围滑块
- 绑定promise回调函数的“this”范围
- 谷歌地图api检查标记在绑定范围内
- 角度.js指令模板 URL 无法绑定范围
- 在闭包中自动绑定范围变量
- jQuery插件样板 - 具有绑定范围的私有方法
- 在 HTML 模板中使用短划线绑定范围属性
- Angularjs 数学在绑定范围对象上
- AngularJS:选择不会更改绑定范围变量时的选定选项
- angular.js指令双向绑定范围更新
- 从外部绑定范围访问knockoutjs ViewModel
- 绑定范围外的变量可以加快代码的速度吗
- 通过指令将元素添加到 DOM 并从控制器绑定范围监视(角度.js)
- 无法在 AngularJS 中绑定范围变量