Javascript AngularJS-显式运行指令
我是AngularJS的新手,我正在努力解决以下问题 我需要执行以下三步工作流程:Javascript AngularJS-显式运行指令,javascript,angularjs,Javascript,Angularjs,我是AngularJS的新手,我正在努力解决以下问题 我需要执行以下三步工作流程: 调用返回字符串列表的web服务。例如,[“apple”、“banana”、“orange”]等。在将响应发送到视图之前,我截取响应并在每个字符串周围添加尖括号 对于服务返回的每个字符串,我必须呈现 <apple /> <banana /> <orange /> 最后,获取与要“执行”的每个字符串对应的实际AngularJS指令(不确定正确的单词是什么),并用templateU
- {{水果}
还要注意,每个水果都可以有自己的控制器。在上面的代码中,我说的是“fruitSpecificController”,但理想情况下,它也会在运行时生成。例如,“appleController”、“orangeController”等。是的,它们将是父“mainController”的子控制器。您可能只需要使用。这些文档不是非常有用,但要点是调用$compile,传入DOM元素(在您的例子中是指令的父元素)。它返回一个函数,然后执行该函数,并传入要使用的范围($rootscope可能是安全的)
您可能只需要使用。这些文档不是非常有用,但要点是调用$compile,传入DOM元素(在您的例子中是指令的父元素)。它返回一个函数,然后执行该函数,并传入要使用的范围($rootscope可能是安全的)
您可以使用compile方法,但如果您愿意通过URL加载,则有一个内置指令可以为您执行此操作 ng包括 使用
ng include=“”/path/to/template.html“
-将请求经过计算的表达式URL,并将其作为子级(为您编译)添加到DOM中
还可以使用缓存模板(如果要同时请求多个模板或缓存多个包含)
看起来是这样的:
$templateCache.put(/path/to/template.html,'apple html string')代码>
自定义指令(带$compile)
否则,如果要加载并编译字符串,请在ng repeat
中使用指令
.directive('unsafeHtmlCompile', function($compile){
return {
link: function(scope, element, attrs){
scope.$watch(attrs.unsafeHtmlCompile, function(val){
if(val !== undefined){
element.html('');
var el = angular.element(val);
element.append(html);
$compile(el)(scope);
}
});
}
}
}
如果您的数据不会更改,请记住删除监视程序:-)您可以使用compile方法,但如果您愿意通过URL加载,则有一个内置指令可以为您执行此操作
ng包括
使用ng include=“”/path/to/template.html“
-将请求经过计算的表达式URL,并将其作为子级(为您编译)添加到DOM中
还可以使用缓存模板(如果要同时请求多个模板或缓存多个包含)
看起来是这样的:
$templateCache.put(/path/to/template.html,'apple html string')代码>
自定义指令(带$compile)
否则,如果要加载并编译字符串,请在ng repeat
中使用指令
.directive('unsafeHtmlCompile', function($compile){
return {
link: function(scope, element, attrs){
scope.$watch(attrs.unsafeHtmlCompile, function(val){
if(val !== undefined){
element.html('');
var el = angular.element(val);
element.append(html);
$compile(el)(scope);
}
});
}
}
}
如果您的数据不变,请记住删除观察者:-)当您说“苹果”、“香蕉”和“橙色”时,这些只是您想要解析为HTML DOM的HTML字符串吗?这就是想法,是的。当您说“苹果”、“香蕉”和“橙色”时,这些只是您想要解析为HTML DOM的HTML字符串吗?这就是想法,是的。我想我明白了这个想法,我用$compile实现了它。嗯……有点。这些FROUT指令自己从web服务获取填充的数据。现在,数据来自在控制器中调用的函数。在$compile之后如何调用该函数?我想我明白了这个想法,并且使用$compile实现了它。嗯……有点。这些FROUT指令自己从web服务获取填充的数据。现在,数据来自在控制器中调用的函数。在$compile之后如何调用该函数?我想我明白了这个想法,并且使用$compile实现了它。嗯……有点。这些FROUT指令自己从web服务获取填充的数据。现在,数据来自在控制器中调用的函数。在$compile之后如何调用该函数?我想我明白了这个想法,并且使用$compile实现了它。嗯……有点。这些FROUT指令自己从web服务获取填充的数据。现在,数据来自在控制器中调用的函数。在$compile之后如何调用该函数?