gpt4 book ai didi

javascript - Angularjs 指令隔离范围 + 单向数据绑定(bind)不适用于对象?

转载 作者:可可西里 更新时间:2023-11-01 02:16:48 25 4
gpt4 key购买 nike

我创建了一个具有两个值的自定义指令。第一个是配置对象,第二个是数据对象。我在我的指令中修改了这个配置和数据对象,这在父范围中反射(reflect)了它。当我必须多次使用指令时,这会导致我出错。

我关注了https://umur.io/angularjs-directives-using-isolated-scope-with-attributes/我正在使用隔离范围。

我想要一种方式对隔离范围内的对象进行数据绑定(bind)。无论我在指令函数中更改什么,它都不应该反射(reflect)在父范围中。

以下是指令的范围。

scope: {
config: "&config",
dataObj: "&dataObj"
}

这是我在指令的链接函数中访问它的方式

var config = scope.config();
var dataObj= scope.dataObj();

我假设这里发生了按引用传递。

我正在添加 JSbin。检查控制台,对象的值正在更改并反射(reflect)在父范围内。

https://jsbin.com/vagowe/edit?html,js,output

最佳答案

传递文本是单向绑定(bind)(@),传递对象是双向绑定(bind)(=)

将对象作为文本传递

<custom-directive config="{{config}}"></custom-directive>

指令范围

scope: {
config: "@"
}

将字符串转换回链接中的对象

var config = angular.fromJson(scope.config);

关于javascript - Angularjs 指令隔离范围 + 单向数据绑定(bind)不适用于对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33126555/

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