AngularJS指令等到呈现模板

约书亚·沃尔什(Joshua Walsh)

我试图将SharePoint People Picker包装在AngularJS指令中。为了初始化人员选择器,我需要在页面上放置一个div,为其指定一个ID,然后将该ID传递到SharePoint函数中。

我使用这样的基本指令进行此操作:

<sp-people-picker id="test"></sp-people-picker>

但我希望该指令可以在任何地方使用,包括在重复的部分中:

<div ng-repeat="item in dataset">
    <sp-people-picker id="test-{{ $index }}"></sp-people-picker>
</div>

这失败了。我逐步检查了一下代码,看看出了什么问题,然后发现当我用“ test-0”愉快地调用SharePoint人员选择器函数时,却找不到该元素。document.getElementById("test-0")返回null。这样做的原因是,我的div仍然具有id“ test-{{$ index}}”,并且在我的指令编译后才得到“ test-0”。

如何确保我的指令在呈现{{}}之后运行?

(不使用SharePoint进行标记,因为SharePoint只是上下文,它实际上与我要解决的问题无关)

Pankaj Parkar

您需要attrs.$observe在指令链接函数内部使用,其作用与$ watch相同,不同之处在于它可以在{{}}插值指令上进行监视,您的链接函数将如下所示。每当插值指令被求值时,它将调用函数。

指令(链接功能)

link: function(scope, element, attrs){
    attrs.$observe(attrs.id, function(newVal, oldVal){
        //here you can get new value & `{{}}` is evaluated.
    });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

呈现模板时的AngularJS指令

来自分类Dev

呈现模板时的AngularJS指令

来自分类Dev

AngularJS:指令的模板无法正确呈现

来自分类Dev

AngularJS指令模板类未呈现

来自分类Dev

AngularJS指令呈现跳动

来自分类Dev

AngularJS指令模板可以呈现另一个指令吗?

来自分类Dev

呈现模板之前的编译指令

来自分类Dev

AngularJS:包含指令模板

来自分类Dev

AngularJS:包含指令模板

来自分类Dev

AngularJS指令模板包含

来自分类Dev

在自定义指令中时,AngularJS模板变量未呈现

来自分类Dev

Angular:指令代码未呈现模板

来自分类Dev

AngularJS模板标题未呈现

来自分类Dev

AngularJS指令不显示模板

来自分类Dev

AngularJS:指令中的访问模板

来自分类Dev

缓存AngularJS指令的编译模板

来自分类Dev

AngularJS指令不显示模板

来自分类Dev

AngularJS指令模板未编译

来自分类Dev

AngularJS:指令中的访问模板

来自分类Dev

AngularJS指令不显示模板

来自分类Dev

AngularJS控制由指令呈现的精确DOM

来自分类Dev

如何在Angularjs指令中呈现html?

来自分类Dev

AngularJS等到

来自分类Dev

在AngularJs中API响应之前呈现模板

来自分类Dev

如何在指令模板中呈现双花括号?

来自分类Dev

使Angular指令模板中的html标签从json正确呈现

来自分类Dev

使Angular指令模板中的html标签从json正确呈现

来自分类Dev

是否可以呈现具有独立范围的角度指令模板?

来自分类Dev

AngularJS指令,模板和ng-include