Javascript AngularJS ng重复不';不能在重写HTML的指令中工作
我有一个指令,需要在编译之前对其内容进行一些HTML重写。我已经找到了一种方法,但它似乎对ng repeat不起作用 HTMLJavascript AngularJS ng重复不';不能在重写HTML的指令中工作,javascript,angularjs,Javascript,Angularjs,我有一个指令,需要在编译之前对其内容进行一些HTML重写。我已经找到了一种方法,但它似乎对ng repeat不起作用 HTML <body ng-controller="MainCtrl"> <div ng-repeat="source in sources"> <p> {{ source.name }} </p> </div> <div my-template> {{ s
<body ng-controller="MainCtrl">
<div ng-repeat="source in sources">
<p>
{{ source.name }}
</p>
</div>
<div my-template>
{{ sources }}
<div ng-repeat="source in sources">
<p>
{{ source.name }}
</p>
</div>
</div>
</body>
输出为:
source1
source2
[{"name":"source1"},{"name":"source2"}]
因此,sources
变量在指令的作用域中可见,但ng repeat仍然失败<代码>控制台.log(html)在控制台中显示:
{{ sources }}
<!-- ngRepeat: source in sources -->
{{sources}
这暗示在我的指令之前,ng repeat正在被评估/编译,但我不知道从这里可以走多远
Plunker:正如GeorgeWG所注意到的,在这种情况下,从“链接”阶段更改为“编译”阶段会有所帮助。您需要在指令中使用transclude选项,请参见示例。重要信息:您引用了AngularJS(1.0.8)的旧版本,我在示例1.4.1中使用了该版本 角度模块('transcludeExample',[]) .directive('myTemplate',function(){ 返回{ 限制:“A”, 是的, 模板:“” }; }) .controller('ExampleController',['$scope',function$scope){ $scope.sources=[{name:“source1”},{name:“source2”}]; }]);代码>
{{sources}}
{{source.name}
HTML操作应在编译阶段完成。有关更多信息,请参阅。
{{ sources }}
<!-- ngRepeat: source in sources -->