当前位置: 首页 > 面试题库 >

参数更改时刷新角度指令

许奇
2023-03-14
问题内容

我有一个初始化的角度指令,如下所示:

<conversation style="height:300px" type="convo" type-id="{{some_prop}}"></conversation>

我希望它足够聪明,可以在$scope.some_prop更改时刷新指令,因为这意味着它应该显示完全不同的内容。

我已经对其进行了测试,但没有任何反应,$scope.some_prop更改时甚至没有调用链接函数。有没有办法做到这一点?


问题答案:

链接函数仅被调用一次,因此不会直接执行您期望的操作。您需要使用angular $watch来观看模型变量。

该手表需要在链接功能中设置。

如果您将隔离范围用于指令,则范围将是

scope :{typeId:'@' }

在链接功能中,然后添加一个手表

link: function(scope, element, attrs) {
    scope.$watch("typeId",function(newValue,oldValue) {
        //This gets called when data changes.
    });
 }

如果您不使用隔离示波器,请注意 some_prop



 类似资料:
  • 非常简单的要求,但很难做到这一点。有一个简单的页面,我打印参数在url路径。 ngtest.html 在浏览器窗口中: 将更改为类似 什么也没发生。按F5键,它将按预期工作。 不确定这是否与浏览器行为有关,但如何强制页面在参数更改后刷新Enter?

  • 我有一个父组件和子组件,其中父组件通过@Input修饰符将对象传递给子组件。问题是,子级只获取父级数据一次,然后在将来更改传递给子级的父属性后,不会更新该值。

  • 我需要从文件中删除封面 调试时,元素已正确删除,但输出封面上的元素仍在此处。 有没有更新/刷新文档xml的方法,即使更改是从低级别发生的,我们如何刷新文档以保持更新

  • 这个问题可能已经得到了回答,我读过很多类似的,但对我不起作用。因此,我的具有扩展的自定义表模型。我的数据是和列名。那么,当我的数据发生更改时,如何更新表呢?我一直在使用,它正在工作,但它将我的自定义单元格呈现器重置为默认值。谢了。

  • 问题内容: 我想在用户滚动角度方式时更改CSS元素。 这是使用JQuery方式的代码 我尝试使用以下代码执行Angular方式,但是$ scope.scroll似乎无法正确获取滚动数据。 Muchos gracias好友! 问题答案: 请记住,在Angular中,DOM访问应从指令内部进行。这是一个简单的指令,可根据窗口的设置变量。 对我来说,您到底要寻找什么样的最终结果尚不清楚,所以这是一个简单

  • 问题内容: 输入如下: 当我手动键入并更改输入时,将执行。但是,如果我以编程方式通过其他功能更改了repair.test值,则不会触发ng- change的操作。我已经阅读了角度教程,这可能是预期的行为。 https://docs.angularjs.org/api/ng/directive/ng更改 “当值更改来自模型时,不评估表达式。” <-我也需要这个。模型以任何方式更改时,如何在控制器中触