2017-05-24 62 views
1

我得到了編碼angularjs應用程序的問題。角ng控制器似乎不能在路線工作

讓我給一個關於我在做什麼的摘要,我正在使用一個使用angularjs的模板,它使用ui路由器。我的問題是,似乎我可以調用控制器,但是當我加載頁面時,它不顯示任何內容,這是我正在工作的代碼。

<tr ng-repeat="tableHead in tableHeads"> 
      <th>{{ tableHead.th }}</th> 
    </tr> 

是的它在這裏有data-ng-class。

<li data-ng-class="{open: $state.includes('app.apps')}"> 
    <a ui-sref="app.members"> 
    <i class="icon-user material-icons"></i> 
    <span translate="menu.MEMBERS"></span> 
    </a> 
</li> 

在routes.js

//Members 
    .state('app.members', { 
    url: '/', 
    templateUrl: 'views/members/members.html', 
    resolve: { 
     deps: ['$ocLazyLoad', function($ocLazyLoad) { 
     return $ocLazyLoad.load('scripts/controllers/members.js'); 
     }] 
    }, 
    title: 'Members' 
    }) 

和控制器

'use strict'; 

function membersCtrl() { 
var vm = this; 
vm.dataMembers = { 
    'ajax': 'data/datamembers-arrays.json' 
}; 
vm.tableHeads = [ 
    { th: 'Date Created'}, 
    { th: 'Mobile'}, 
    { th: 'First Name'}, 
    { th: 'Last Name'}, 
    { th: 'User Type'}, 
    { th: 'Email'}, 
    { th: 'Unit#'}, 
    { th: 'Street'}, 
    { th: 'Postal Code'} 
]; 
} 
angular.module('app').controller('membersCtrl', membersCtrl); 

{{ tableHeads.th }}的路線說明不了什麼,但空白(背景),但沒有文字。

It got detected by chromedevtools

And shows no errors on console

感謝您閱讀的時候了!請幫助:D

回答

1

我不確定這是否會完全解決您的問題。但是,我注意到需要加入一些修復程序。希望這可以解決您的問題。

1)指定狀態設定控制器如下:

.state('app.members', { 
url: '/', 
templateUrl: 'views/members/members.html', 
resolve: { 
    deps: ['$ocLazyLoad', function($ocLazyLoad) { 
    return $ocLazyLoad.load('scripts/controllers/members.js'); 
    }] 
}, 
title: 'Members', 
controller: 'membersCtrl', 
controllerAs: 'memCtrl' 
}) 

2)其次,注意要設置tableHeads到虛擬機,而不是$範圍。所以,你需要使用'controller as'語法。請注意,在上面的代碼片段中,我們提到了controllerAs: 'memCtrl'。所以,改變你的模板如下

<tr ng-repeat="tableHead in memCtrl.tableHeads"> 
     <th>{{ tableHead.th }}</th> 
</tr> 
+0

這只是回答我的9個小時的問題男人,非常感謝! –