作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 AngularJS 中,我有以下场景,其中指令可以接受可选的 bool 参数,默认情况下该参数应默认为 true,只要未指定。 p>
示例:
<my-directive data-allow-something="false">
... this works as expected as no default value should be set in this case ...
</my-directive>
<my-directive>
... but in this case i'd like allowSomething to equal true ...
</my-directive>
我尝试了以下方法,但由于某种原因,true 值没有保留在 allowSomething 上。使其成为'=?'可选的双向绑定(bind)也不起作用,因为我传递的值应该是具体的 true/false 而不是字段引用。
angular.module('myApp').directive('myDirective') {
...
controller: function($scope){
if (!$scope.allowSomething)
$scope.allowSomething = true;
},
....
scope: function(){
allowSomething: '@'
}
...
}
我确信应该有一个简单的方法来实现这一点,那么我缺少什么?
以下工单给出的解决方案:AngularJS directive with default options不足以满足我的需要,因为 $compile 函数将阻止链接函数工作。另外,传入的 bool 值不是引用类型,我无法为其提供双向绑定(bind)。
最佳答案
我认为检查该值的更好方法是查找像这样的未定义值:
controller: function($scope){
if (angular.isUndefined($scope.allowSomething))
$scope.allowSomething = true;
}
我曾经遇到过同样的问题,这对我有用。我认为最好的方法是使用 Angular 的方法来处理事情。
关于angularjs - 如何在 AngularJS 指令范围中设置默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31839435/
我是一名优秀的程序员,十分优秀!