2016-04-10 18 views
2

角度を学習しています。そのため、コントローラスコープからの指示にアクセスすることができません。 $ scope.vojtaは、私が指令から印刷したいコントローラーに取り込まれています。角度角度からコントローラースコープにアクセスする方法

<div ng-controller="Controller"> 
    <my-customer ></my-customer> 
</div> 

angular.module('docsIsolationExample', []) 
.controller('Controller', ['$scope', function($scope) { 
    //$scope.naomi = { name: 'Naomi', address: '1600 Amphitheatre' }; 
    $scope.vojta = { name: 'Vojta', address: '3456 Somewhere Else' }; 
}]) 
.directive('myCustomer', function() { 
    return { 
    restrict: 'E', 
    /* 
    scope: { 
     customerInfo: '=info' 
    }, 
    */ 
    template: 'Name: {{vojta.name}} Address: {{vojta.address}}' 

    }; 
}); 

名前または住所が印刷されていません。私はどこでミスをしたのか理解できません。いくつかの提案を探しています。ここでフィドルhttps://jsfiddle.net/tridip/3g9yddf5/

+1

ブラウザのコンソールを開きます。フィドルのコードに構文エラーがあります。有効なJavaScriptではありません。そして、 'ng-app =" docsIsolationExample "'をテンプレートに追加するのを忘れた。 –

答えて

3

あなたはディレクティブの孤立範囲内​​を持っているとして、それは、ディレクティブ内のcustomerInfoスコープ変数で利用可能なことができるように、あなたは、(属性の別名として使用している)info属性から値を渡す必要があります。

<my-customer info="vojta"></my-customer> 

次に、顧客情報を渡したcustomerInfoを使用するように指示テンプレートを変更します。

template: 'Name: {{customerInfo.name}} Address: {{customerInfo.address}}' 

Demo Fiddle

+0

私はしようとしたが、idは動作しません。何も印刷されません。 – Mou

+0

@Mouは更新された答えとフィドルも見ています。 –

+0

私は、顧客からinfo = "vojta"を削除し、ディレクティブ内の分離スコープにコメントします。私は答えとしてマークします。ありがとう – Mou

0

我々は、単離されたスコープを使用せずに以下のコードによって指令からコントローラスコープにアクセスすることができます。

<div ng-app="docsIsolationExample" ng-controller="Controller"> 
    <my-customer></my-customer> 
</div> 

angular.module('docsIsolationExample', []) 
.controller('Controller', ['$scope', function($scope) { 
    //$scope.naomi = { name: 'Naomi', address: '1600 Amphitheatre' }; 
    $scope.vojta = { name: 'Vojta', address: '3456 Somewhere Else' }; 
}]) 
.directive('myCustomer', function() { 
    return { 
    restrict: 'E', 
    /* 
    scope: { 
     customerInfo: '=info' 
    },*/ 

    template: 'Name: {{vojta.name}} Address: {{vojta.address}}' 

    }; 
}); 

jsfiddle https://jsfiddle.net/tridip/3g9yddf5/3/