2016-12-22 8 views
0

私はこれをどのように取り除いたのかよくわかりませんが、ビュー内のすべてのデータを表示するオブジェクトがありますが、コントローラの参照はありません。私は私のデータを想定し 角度:コントローラのデータを参照しています

$スコープまたは このにあったが、私は見つけることができないということ。

これが私の見解です:

<script src="controllers/Multiple-Checkboxes.js"></script> 
<div ng-controller="tenant.views.surveys.index.display.multiple-checkboxes as vm"> 
    <h6>{{item}}</h6 
    <h6>{{vm.NumberOfColumns.Value}}</h6> 
</div> 

それがうまく、私は私のコントローラで使用するすべてのデータを出力します。

これは私のコントローラです:

(function() { 
     appModule.controller('tenant.views.surveys.index.display.multiple-checkboxes', [ 
      '$scope', 'abp.services.app.survey', 
      function ($scope, surveyService) { 
       var vm = this; 
       vm.parent = $scope.$parent.$parent.vm; 

       console.log(this); 
       console.log($scope); 
       vm.NumberOfColumns = { Value: 4 }; 

      } 
     ]); 
    })(); 

このはnumberOfColumnsと親を除いては何も含まれていません。

$$watchers:Array[5] 
    0:Object 
    1:Object 
    2:Object 
    3:Object 
    4:Object 
    eq:false 
    exp:(c,e,f,g) 
    fn:(a,c,f) 
    get:(a) 
    last: "{"title":"Multi check","body":"Check all that apply","response":{"type":{"type":"Multiple  Checkboxes","isDeleted":false,"deleterUserId":null,"deletionTime":null,"lastModificationTime":null,"lastModifierUserId":null,"creationTime":"2016-12- 21T20:01:31.46Z","creatorUserId":null,"id":1},"options":[{"label":"Red","value":"1"},{"label":"Orange","value":"2"},{"label":"Yellow","value":"3"}, {"label":"Green","value":"4"},{"label":"Blue","value":"5"},{"label":"Violet","value":"6"},{"label":"Magenta","value":"7"}],"settings": [],"isDeleted":false,"deleterUserId":null,"deletionTime":null,"lastModificationTime":null,"lastModifierUserId":null,"creationTime":"2016-12- 21T20:11:59.087Z","creatorUserId":null,"id":120},"controlSettings":null,"surveyTypes":["Product Evaluation","Marketing Research","Marketing"],"audiences":["Internal","External"],"valid":true,"tags": [],"isDeleted":false,"deleterUserId":null,"deletionTime":null,"lastModificationTime":null,"lastModifierUserId":null,"creationTime":"2016-12- 21T20:11:59.087Z","creatorUserId":null,"id":120,"list":"survey"}" 

が、それはおそらく、それをアクセスするための適切な場所にすることはできません。

$スコープは、私がここに道ダウン埋葬、私のデータを見つけた

b 
    $$ChildScope: b() 
    $$childHead: b 
    $$childTail: b 
    $$listenerCount: Object 
    $$listeners: Object 
    $$nextSibling: null 
    $$prevSibling: null 
    $$watchers: Array[5] 
    $$watchersCount: 26 
    $id: 1927 
    $parent: m 
    vm: Object 
    __proto__: m 

が含まれています。

[UPDATE]

これは、現在{{項目}}によって表示されているものです。

{"title":"Multi check","body":"Check all that apply","response":{"type":{"type":"Multiple Checkboxes","isDeleted":false,"deleterUserId":null,"deletionTime":null,"lastModificationTime":null,"lastModifierUserId":null,"creationTime":"2016-12-21T20:01:31.46Z","creatorUserId":null,"id":1},"options":[{"label":"Red","value":"1"},{"label":"Orange","value":"2"},{"label":"Yellow","value":"3"},{"label":"Green","value":"4"},{"label":"Blue","value":"5"},{"label":"Violet","value":"6"},{"label":"Magenta","value":"7"}],"settings":[],"isDeleted":false,"deleterUserId":null,"deletionTime":null,"lastModificationTime":null,"lastModifierUserId":null,"creationTime":"2016-12-21T20:11:59.087Z","creatorUserId":null,"id":120},"controlSettings":null,"surveyTypes":["Product Evaluation","Marketing Research","Marketing"],"audiences":["Internal","External"],"valid":true,"tags":[],"isDeleted":false,"deleterUserId":null,"deletionTime":null,"lastModificationTime":null,"lastModifierUserId":null,"creationTime":"2016-12-21T20:11:59.087Z","creatorUserId":null,"id":120,"list":"survey"} 

私は私のコントローラでそれにアクセスしたいです。

+0

「マイデータ」とは何ですか? – Piou

+0

私はウィジェットをレンダリングするために必要なものがたくさんあります。 – DaveC426913

+0

実際に何が起こっているのか、実際にあなたの問題が何であるかを実際に理解するには、ここで十分ではありません。私はこのビューテンプレートで '{{item}}'をどのように出力できるかを尋ねていますが、表示している内容に基づいて、このテンプレートは他のビューの中にネストされているだけです*コントローラー。ツリーのどこかに、*何かが '$ scope.item'を追加しました。それぞれの 'ng-controller'リファレンスは新しい' $ scope'を作成します.... – Claies

答えて

0

あなたはcontroller as vm構文を使用してitemいるがvm.が付いていない、私はitemオブジェクトを疑ってることは、親や兄弟スコープです。

あなたのコードをもっと見る必要があります(主にHTML)。

+0

だから...? whatsは解決策です – Vikrant

+0

いいえ、実際のデータは、** {{item}} **のビューに含まれているものでいっぱいの大きなオブジェクトです。私はそのすべてを見ているが、コントローラーにアクセスする方法はない。 – DaveC426913

+0

これは、コントローラを構文として使用しているので、親または兄弟スコープにあり、 'item'に' vm'が前置されていません。 – Piou

0

ビューの{{item}}は実際に親の$ scopeによって読み込まれていました。

これは子コントローラです。親$スコープにアクセスするには、私は

var vm = this; 
vm.parent = $scope.$parent; 
vm.item = vm.parent.item; 

その後、

を使用し、ビュー内に{{アイテム}}スイッチ{{vm.itemは}}

混合ませんそこにいくつかの知恵がありますvmと$ scopeは、このチャットで一般的に概説されています:http://chat.stackoverflow.com/transcript/131207ですが、これは別のスレッドのためかもしれません。

(@Claiesがチャイムインしたいのでない限り)

関連する問題