2016-05-16 16 views
1

内のコントローラオブジェクトを参照:私のHTMLテンプレート内1角度:私はこのような単純なディレクティブ持つテンプレート

myApp.directive('myDirective', function() { 
    var controller = ['$scope', function($scope) { 
    function init() { 
     this.name = "Sim"; 
     this.age = 6; 
    } 
    init(); 
    }]; 
    //define the directive object 
    var directive = {}; 
    directive.controller = controller; 

    directive.restrict = 'E'; 
    directive.templateUrl = "hello.html"; 
    directive.controllerAs= 'cus';//defining a name to the controller. 
    return directive; 
}); 

を私は(上記コントローラは、お客さまとして参照されますのでご注意ください)以下のようなコントローラ変数を参照したいです:このスニペットが動作していないのはなぜここ

<div> 
    <div>Name: {{cus.name}}</div> 
    <div> Age: {{cus.age}}</div> 
</div> 

は問題

と私のplunkのですか?

+0

私はあなたのコントローラでは、あなたがスコープを注入することを見ることができますが、何もスコープに書き込まれませんか? – thsorens

+0

コントローラオブジェクトに値を格納したいが、スコープには格納しません。 https://toddmotto.com/digging-into-angulars-controller-as-syntax/ – Cyril

+1

私は角度を使って作業していたのでしばらくしていましたが)$スコープは注入されていないはずです。場合でも – thsorens

答えて

2

考えられる問題は 'this'の使用です。 'this'を使用する代わりに、controllerAs変数を使用します。

例:

var cus = this; 

function init() { 
     cus.name = "Sim"; 
     cus.age = 6; 
    } 

init(); 
+0

ありがとう@サラシーあなたはそれを釘付けにしました。同じような罠に陥るかもしれない人たちのために、固定された大群http://plnkr.co/edit/H9EoLR?p=previewがあります。 – Cyril

関連する問題