2016-09-30 18 views
3

オブジェクトを表示します。オブジェクト自体はコントローラですが、htmlはそのプロパティにアクセスできません(おそらくモデルは表示されません)!たぶん問題のルーティング? app.jsコントローラのanglejsのhtmlにオブジェクトへのアクセスがありません

(function() { 
 
\t 'use strict'; 
 

 
\t angular 
 
\t .module('hawk', [ 
 
\t \t 'ngWebsocket', 
 
\t \t 'ui.bootstrap', 
 
\t \t 'ui.router', 
 
\t \t 'hawk.controllers', 
 
\t \t 'hawk.services', 
 
\t \t 'hawk.directives' 
 
\t \t ]) 
 
\t .config(['$stateProvider', '$urlRouterProvider', router]) 
 
\t .run(['$rootScope', main]); 
 

 
\t angular.module('hawk.services', []); 
 
\t angular.module('hawk.directives', []); 
 
\t angular.module('hawk.controllers', []); 
 

 

 
\t function router($stateProvider, $urlRouterProvider) { 
 

 
\t \t $urlRouterProvider.otherwise('/list'); 
 

 
\t \t // CARDS OBJECT VIEW 
 
\t \t $stateProvider 
 
\t \t \t .state('list', { 
 
\t \t \t abstract: true, 
 
\t \t \t url: '/list', 
 
\t \t \t templateUrl: '/app/app-eng/controllers/list.html', 
 
\t \t \t controller: 'ListController as dc' 
 
\t \t }) \t 
 
\t \t \t .state('list.cards-list', { 
 
\t \t \t \t url: '/cards-list', 
 
\t \t \t \t templateUrl: '/app/app-eng/controllers/object-card/cards-list.html', 
 
\t \t \t \t controller: 'CardsListController as dc', 
 
\t \t \t }) 
 
\t \t \t .state('list.contract', { 
 
\t \t \t \t url: '/contract', 
 
\t \t \t \t templateUrl: '/app/app-eng/controllers/object-card/contract.html', 
 
\t \t \t \t controller: 'ContractController as dc', 
 
\t \t \t }) 
 
\t \t \t 
 
\t } 
 

 
\t function main ($rootScope) { 
 
\t \t $rootScope.object = {}; 
 
\t } 
 
})();

submittionのlist.cards-リストは、私が(モデルからの)オブジェクトへのアクセス権を持っていますが、list.contractを提出することは、私は、オブジェクトを取得し、そのプロパティにアクセスすることはできません(モデルで)。どうして?

するlist.html

<div class="list-group col-md-2 sidebar-offcanvas"> 
 
    <uib-tabset active="activePill" vertical="true" type="pills"> 
 
     <uib-tab index="0" heading="Cards list" ui-sref="list.cards-list"></uib-tab> 
 
     <uib-tab index="1" heading="Contract" ui-sref="list.contract"></uib-tab> 
 
    </uib-tabset> 
 
</div> 
 
<div class="col-md-10"> 
 
    <div ui-view></div> 
 
</div>

contract.html

<div class="panel panel-default"> 
 
    <div class="panel-heading"> 
 
    <h3 class="panel-title">Contract #{{ 2222222}}</h3> 
 
    </div> 
 

 
    <table class="table table-condensed"> 
 
    <tr> 
 
     <td width="10%" align="right"><strong>№ contract:</strong></td> 
 
     <td>{{dc.data.id}}</td> 
 
    </tr> 
 
    <tr> 
 
     <td align="right"><strong>Date start:</strong></td> 
 
     <td>{{dc.data.cdstart}}</td> 
 
    </tr> 
 
    <tr> 
 
     <td align="right"><strong>Date end:</strong></td> 
 
     <td>{{dc.data.cdend}}</td> 
 
    </tr> 
 
    <tr> 
 
     <td align="right"><strong>Type name:</strong></td> 
 
     <td>{{dc.data.tyonames}}</td> 
 
    </tr> 
 
    <tr> 
 
     <td align="right"><strong>Category.:</strong></td> 
 
     <td>{{dc.data.ccategory}}</td> 
 
    </tr> 
 
    <tr> 
 
     <td align="right"><strong>Police department:</strong></td> 
 
     <td>{{dc.data.rpnames}}</td> 
 
    </tr> 
 
    </table> 
 
</div>

contract.js あなたとあなたの変数にアクセスする必要が

(function() { 
 
\t 'use strict'; 
 

 
\t angular 
 
\t \t .module('hawk.controllers') 
 
\t \t .controller('ContractController', ContractController); 
 

 
\t ContractController.$inject = ['$scope', 'Websocket']; 
 

 
\t function ContractController ($scope, Websocket) { 
 
\t \t var vm = this; 
 

 
\t \t vm.data = {}; 
 

 
\t \t init(); 
 
\t \t 
 
\t \t function getContracts (id) { 
 
\t \t \t console.log('getContracts-id', id); 
 
\t \t \t Websocket.getContracts({ id: id }).then(function(data) { 
 
\t \t \t \t console.log('getContracts-data', data); 
 
\t \t \t \t vm.data = data.data; 
 
\t \t \t \t console.log('getContracts-vm.data', vm.data); 
 
\t \t \t }); 
 
\t \t } 
 

 
\t \t function getAddress (id) { 
 
\t \t \t Websocket.getAddress({ id: id }).then(function(data) { 
 
\t \t \t \t console.log('getAddress', data); 
 
\t \t \t \t vm.address = data.data; 
 
\t \t \t }); 
 
\t \t } 
 

 
\t \t function init() { 
 
\t \t \t $scope.$watch('object.id', function(newValue, oldValue) { 
 
\t \t \t \t console.log('cc', newValue, oldValue, $scope.object.id); 
 
\t \t \t \t getContracts($scope.object.id); 
 
\t \t \t }); 
 
\t \t } 
 
\t } 
 
})();

+0

多分あなたはあなたのhtmlで 'ng-controller =" ContractController "'を忘れましたか? – Icepickle

+0

いいえ、それでも何も変更されません。 –

答えて

0

"VM。"あなたのhtml - > "{{vm.data}}"など

//編集: "vm"なしでそれらにアクセスするには、あなたの変数を "$ scope"に入れなければなりませんコントローラ。

+0

いいえ! vmはローカル$スコープです。 vmを$ scopeに置き換えると、プレゼンテーションで何も変わりません!オブジェクトはまだ表示されません! 私は{{dc.data.property}}を{{data.proerty}}に置き換えて変更しました。 –

+0

ええ、あなたの右の@IgorE.Arkhipenko、私はコントローラーを変更することもお勧めします: 'CardsListController dc'、コントローラー: 'CardsListController vm'のように、どこでも同じです。 – YaennuuH

関連する問題