AngularJSの新機能です。私は、アプリケーション全体で再利用されるhtmlコンポーネントを作っています。このコンポーネントが製品の基本情報を提供しているとしましょう。 HTMLの基本的な構造は以下の通りです:小さなHTMLコンポーネントは、このようなアプリで他のHTMLページで再利用されるだろう事前定義された条件に基づいてHTMLコンポーネントをng-repeatとバインドする方法
(function() {
'use strict';
angular
.module('product')
.directive('productDetails', productDetails);
/** @ngInject */
function productDetails() {
var directive = {
restrict: 'E',
templateUrl: 'app/components/productDetails/productDetails.html'
};
return directive;
}
})();
:
<div class="visible-sm-block">
<div class="row">
<div class="col-sm-2">
<img class="img-circle img-responsive" alt="Image of product"
ng-src="{{}}"/>
</div>
<div class="col-sm-10">
<label>{{ProductName}}</label>
<p>{{CompanyName}}</p>
<p>{{ShippedTo}}</p>
</div>
</div>
</div>
product.jsファイルとして行きます
<product-details></product-details>
ここで問題は、ページ全体で使用されているときにHTMLコンポーネントとデータをバインドできないことです。これらのページのコントローラは別のフォルダにあります:app/productshipping/productshipping.controller.js HTMLコンポーネント自体にng-controller = "controller_name"を使用してみましたが、結果は出ませんでした。 :(助けてください。
コントローラをロードしますか? angular.module( 'product'、["your_controller"])のように。 – Ozrix
この作業を意図した通りにするためには、あなたはかなり足りません。これらのディレクティブには、通常、独自の '$ scope'オブジェクトを持つ独自のコントローラがあります。また、コンポーネントの各インスタンスが独立した要素(あなたの場合は 'product')を表示することを可能にする* isolatedスコープ*を使用します。 https://docs.angularjs.org/guide/directive – Claies
の公式ドキュメントで、隔離されたスコープを使用した公式のドキュメンテーションサンプルのサンプルがあります。https://plnkr.co/edit/MIi0qm9Vl2vfzz2mNyDM ?p = preview – Claies