gpt4 book ai didi

javascript - 我可以将变量 Controller 函数传递给指令中的函数链接吗?

转载 作者:行者123 更新时间:2023-12-02 17:25:20 27 4
gpt4 key购买 nike

我在 angularjs 上使用自定义指令,我想将一些变量传递给指令,以便使用设置的数据构建指令,数据是从 $http 响应获取的,但这需要很长时间并且没有任何反应当变量填充数据响应时。

我的想法是,如果我可以在指令内的 Controller 函数中发出请求,也许我可以设置一个 $timeout 函数,直到响应结束,但问题是,如果我在 $http 响应中获取数据并填充使用此数据创建变量我可以将其传递给链接函数吗?

编辑:最终结果是表单中的一组字段,从 json 对象以动态方式填充它。

最佳答案

通常,如果您有一些想要与自定义指令共享的信息,您可以手动通过属性或使用 isolate scope 来执行此操作.

想象一下,我有一个自定义指令来显示有关小部件的一些详细信息,但我希望它是通用的......然后我可以像这样编写我的指令:

{
restrict: 'E',
template: '<div>{{widget.name}}</div>',
scope: {
widget:'=' //Allows two way binding with parent scope
}
}

这是最简单的用例,但这将允许我在指令中绑定(bind)到该对象并使其完全隔离。

假设我有一个 Controller ,实际上可以从“$http”调用中查找我的小部件,我可以像这样使用指令:

<!-- 
widget attribute is made available because of how we
declared our directive definition.
-->
<widget-directive widget="ctrl.myWidget"></widget-directive>

如果您的指令更高级,并且您需要根据该对象的更改执行一些操作,那么您可以简单地在 link function 中观看它:

link: function(scope, elem, attrs){
scope.$watch('widget', function(newVal, oldVal){
//
//Do something here now that 'widget' has changed
//
});
}

关于javascript - 我可以将变量 Controller 函数传递给指令中的函数链接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27862094/

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