gpt4 book ai didi

angularjs - 如何在 AngularJS 指令范围中设置默认值?

转载 作者:行者123 更新时间:2023-12-02 11:28:51 24 4
gpt4 key购买 nike

在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com