2016-07-19 15 views
0

納克重複內我有一個路由器:

.config(['$routeProvider',function($routeProvider) { 
    $routeProvider 
     .when('/allbooks', { 
     templateUrl: 'find/showAllMy.html', 
     controller: 'controlador' 
     }).when('/mybooks', { 
     templateUrl: 'find/showAllMy.html', 
     controller: 'controlador' 
     }) 
     .when('/',{ 
     templateUrl: 'find/inputbook.html', 
     controller:'controlador' 
     })   
}]); 

視圖文件 「showAllMy.html」:

<div id='containerMyBooks' ng-init='MyRequests=0; RequestsForMe=0; '> 

    <center><h3>{{titleMyAll}}</h3></center> 

    <div id='containerbuttonsrequest'> 
     <button class='waves-effect waves-light btn'>Your Trade Request {{MyRequests}}  </button> 
     <button class='waves-effect waves-light btn'>Trade Request for you {{RequestsForMe}}</button> 
    </div> 

    <ul ng-repeat='b in Books' ng-init='tradeLink[$index]=true'> 

     <li class='styleLi'> 
      <a class='stylelinktrade' ng-show='tradeLink[$index]' href='/#/{{titleMyAll}}' ng-click="trade('yes',$index)"><img class="styleimgtrade" src='../images/trade.png'>trade!</a> 
      <a class='stylelinktrade' ng-hide='tradeLink[$index]' href='/#/{{titleMyAll}}' ng-click="trade('no',$index)"><img class="styleimgtrade" src='../images/trade.png'>Cancel trade</a> 
      <img class='styleimgbook' src={{b.img}}> 
     </li> 

    </ul> 

</div> 

而這種邏輯在我的控制器:

$scope.trade = function(yesNo, index) {  
    if (yesNo === 'yes') { 
    $scope.MyRequests = $scope.MyRequests + 1; 
    } else { 
    $scope.MyRequests = $scope.MyRequests - 1; 
    } 
    console.log('log' + $scope.tradeLink[index]); 
    // $scope.tradeLink[0]=!$scope.tradeLink[0]; 
} 

,但我似乎無法得到從視圖訪問$ scope.tradeLink [指數],相反,我得到一個錯誤說「無法讀取正確ty 1未定義。「

我該如何解決這個問題?

+0

定義數組$ scope.tradeLink在哪裏?你能否包含一個內容的例子? – jbrown

回答

0

這是因爲您從未將tradeLink初始化爲數組。在您的頂部ng-init中添加tradeLink = []應該修復您的錯誤。

提到,請refrain from using ng-init

這個指令可以被濫用,以邏輯的不必要的量添加到您的模板。 ngInit只有幾個適當的用途,例如用於消除ngRepeat的特殊屬性,如下面的演示所示;並通過服務器端腳本注入數據。除了這幾種情況之外,您應該使用controllers而不是ngInit來初始化作用域上的值。

相反,移除所有ng-init用途(除了一個用ng-repeat這可能是相關的),並在控制器中添加此:

$scope.MyRequests = 0; 
$scope.RequestsForMe = 0; 
$scope.tradeLink = []; 
+0

非常感謝!它和快速反應 – jocarosa

+0

,並感謝您的意見!我將來會考慮這一點 – jocarosa