繁体   English   中英

angularjs指令更改范围属性值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM