[英]angularjs directive change scope property value
我正在编写angularjs指令,并从html属性接收属性。
然后,我为指令创建了一个隔离作用域,并修改了作用域属性的值,但指令模板未显示修改后的值。
我在plunker
创建了一个演示。
谁能帮助我将模板值“ test”更改为“ changeit”?
让我更详细地描述我的问题:
我可能有一个指令,并且在html中,如:,“ top”只是一个简单的字符串,而不是任何ngModel,因此我使用“ @”在指令中接收它,但是当我在链接中对其进行修改时,模板模型值不更改,则尝试使用'=',因为它不是ngModel,所以接收到的值是不确定的,但可以在模板{{}}中动态更改。
您正在使用基于属性的链接,这是一种方法。 对于两种方式的绑定,请在指令定义中使用=
。 就像是:
scope: {
title: '=title'
}
更新 :我现在收到你的问题。 这里的问题是,基于@
的绑定使父作用域和隔离的作用域保持同步。 因此,即使您更改指令中的绑定变量,该变量也将恢复为原始值。 您可以通过在第二个控制台日志中添加$ timeout来验证这一点
$timeout(function(){
console.log(scope.title);
})
title的值将还原。
您可以选择将标题值复制到链接函数中的新变量中,然后将该函数绑定到模板上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.