gpt4 book ai didi

javascript - 数组作为字符串传递给自定义指令

转载 作者:行者123 更新时间:2023-11-30 10:13:04 24 4
gpt4 key购买 nike

我创建了具有独立作用域的 cusotm 指令。但是当我传递给我的数组类型的指令变量时,我在指令中得到了字符串。

我的指令:

angular.module('my.directives')
.directive('testDirective', [function() {
return {
restrict: 'A',
replace: true,
scope: {
myArray: '@'
},
controller: function($scope) {
alert("Is arr: " + angular.isArray($scope.myArray)); // outputs false
}
};
}
]);

用法:

<div ng-repeat="currentObject in list">
<div test-directive my-array="{{currentObject.arrayOfNumbers}}"></div>
</div>

变量 currentObject.arrayOfNumbers 是类型数组的 100% - 我使用 angular.isArray 方法在我的 Controller 中检查了它,但是当在指令中传递它时我得到只是一个字符串。

即如果

currentObject.arrayOfNumbers = [1,2,3,4]

然后内部指令我有完全相同的字符串:[1,2,3,4]"

最佳答案

那是因为你没有正确使用双向绑定(bind)。您正在通过以下方式设置属性 my-array 的文本:-

<div test-directive my-array="{{currentObject.arrayOfNumbers}}"></div>

将其更改为:-

<div test-directive my-array="currentObject.arrayOfNumbers"></div>

这样对象将正确绑定(bind)到指令中的 2 路绑定(bind)范围变量。

并将 myArray: '@' 更改为 myArray: '=' :-

如果你正在做 myArray:'@' 这是文本绑定(bind)然后做 JSON.parse($scope.myArray)$scope.$eval ($scope.myArray))

Demo

关于javascript - 数组作为字符串传递给自定义指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25409497/

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