ng-transclude不在模板AngularJS中工作

时间:2014-09-08 13:47:34

标签: javascript html angularjs angularjs-directive transclusion

很抱歉,如果我在这里丢失了一些愚蠢的东西,但我真的尝试了各种组合来使这段代码正常工作,但没有运气。

我正在directive AngularjSRecipes with AngularJS学习p,但坚持使用此代码 -

https://github.com/fdietz/recipes-with-angular-js-examples/tree/master/chapter3/recipe4

我认为它应该在 Hello World <!doctype html> <html lang="en" ng-app="myApp"> <head> <meta charset="utf-8" /> <title>Directive Example</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js"></script> <script> var myApp = angular.module("myApp", []); myApp.directive("myWidget", function(){ return { restrict: "E", transclude: true, template: "<div ng-transclude><h3>Heading</h3></div>" }; }); </script> </head> <body> <my-widget> <p>Hello World!!</p> </my-widget> </body> </html> 文字之前打印标题。但它不会来。让我知道我的代码中缺少的内容 -

PLNKR CODE

代码整体 -

{{1}}

2 个答案:

答案 0 :(得分:6)

检查“div”之前的第一个“h3”

template: "<h3>Heading</h3><div ng-transclude></div>"

答案 1 :(得分:2)

您需要更改配方的原因是因为Angular改变了v1.0和v1.2之间的转换工作方式。

随着变化eed299a3,Angular现在“在转移之前清除了转移点”。

如果加载v1.0(这是github存储库使用的),您将看到“标题”。使用v1.2,除非您按@Noypi解释的方式修改模板,否则不会看到“标题”。