Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以将变量控制器函数传递给指令中的函数链接吗?_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 我可以将变量控制器函数传递给指令中的函数链接吗?

Javascript 我可以将变量控制器函数传递给指令中的函数链接吗?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我在angularjs上使用一个自定义指令,我想将一些变量传递给该指令,以便使用设置的数据构建该指令,数据从$http响应中获取,但这需要很长的时间,当变量填充了数据响应时,什么都不会发生 我认为如果我可以在指令中的控制器函数中发出请求,也许我可以设置$timeout函数,直到响应结束,但问题是如果我在$http响应中获取数据并用该数据填充变量,我可以将其传递给link函数 编辑:最终结果是表单中的一组字段,从json对象以动态方式填充。通常,如果您有一些信息要与自定义指令共享,可以手动或使用属

我在angularjs上使用一个自定义指令,我想将一些变量传递给该指令,以便使用设置的数据构建该指令,数据从$http响应中获取,但这需要很长的时间,当变量填充了数据响应时,什么都不会发生

我认为如果我可以在指令中的控制器函数中发出请求,也许我可以设置$timeout函数,直到响应结束,但问题是如果我在$http响应中获取数据并用该数据填充变量,我可以将其传递给link函数


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

通常,如果您有一些信息要与自定义指令共享,可以手动或使用属性来完成。

假设我有一个自定义指令来显示关于
小部件的一些细节,但我希望它是通用的。。。然后我可以这样写我的指令:

{
   restrict: 'E',
   template: '<div>{{widget.name}}</div>',
   scope: {
      widget:'=' //Allows two way binding with parent scope
   }
}
link: function(scope, elem, attrs){
   scope.$watch(function () { return scope.widget; }, function(newVal, oldVal){
      scope.widget = newVal;
   }, true);
}

当您必须监视对象(深度监视)时,您可以这样声明您的手表:

{
   restrict: 'E',
   template: '<div>{{widget.name}}</div>',
   scope: {
      widget:'=' //Allows two way binding with parent scope
   }
}
link: function(scope, elem, attrs){
   scope.$watch(function () { return scope.widget; }, function(newVal, oldVal){
      scope.widget = newVal;
   }, true);
}

请注意返回对象的函数,以及添加到手表末尾的true。

要将任何内容传递给指令,您可以使用服务。此外,您还可以使用承诺等待来自HTTP请求的数据。此外,若你们并没有具体的代码要讨论,那个么这一切都只是挥手而已。最好在指令中指定你们想要构建什么,以寻求合适的解决方案answer@DanielA.White是的,但我在一个孤立的范围内,当我试图调试在范围中定义的变量时,我只看到在指令范围中定义的变量。@akonsu请提供我可以用来调试的任何引用。@RubénGalvan好的,这是一个服务文档页:,这是一个承诺文档页:谢谢@Josh,但是,在某种程度上,当我设置一个变量(js对象)以进行单独监视时,请求需要很长时间,并且无法正常工作:(@RubénGalvan-还有更多的细节吗?我可以编写一个工作代码片段来演示这是如何工作的。检索数据所需的时间应该无关紧要。是的,基本上我从wcf服务中获得了一个json字符串,我在用请求填充的变量上放置了一个监视程序,但当这种情况发生时,函数我的指令中的n link已经被触发,当变量被信息请求填充时,观察者不会刷新,如果我清楚这一点,我不知道,但提前感谢@Josh