2

申し訳ありませんが、私がここに欠けているばかげたものがある場合は、このコードを機能させるためにさまざまなコンボを実際に試しましたが、うまくいきませんでした。

私はから学んでdirectiveいますが、このコードで立ち往生しています-AngularjSRecipes with AngularJS

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

Hello Worldテキストの前に見出しを出力する必要があると思います。しかし来ない。私のコードに欠けているものを教えてください - p

PLNKRコード

コード全体 -

<!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>
4

2 に答える 2

6

「div」の前の最初の「h3」を確認してください

template: "<h3>Heading</h3><div ng-transclude></div>"
于 2014-09-08T13:53:10.017 に答える
2

レシピを変更する必要があるのは、Angular が v1.0 と v1.2 の間でトランスクルージョンの動作を変更したためです。

eed299a3の変更により、Angular は「トランスクルージョンの前にトランスリュージョン ポイントをクリアする」ようになりました。

v1.0 (github リポジトリが使用するもの) をロードすると、"Heading" が表示されます。v1.2 では、@Noypi が説明した方法でテンプレートを変更しない限り、「見出し」は表示されません。

于 2015-03-31T02:36:09.453 に答える