2014-07-26 1 views
1

angularjs 컨트롤러에서 ejs 템플릿에 수신 된 정수 배열에서 for 루프를 실행하려면 ejs가있는 angularjs를 사용하고 있습니다.ejs 템플릿을 사용하여 angularjs 컨트롤러에서받은 정수 배열에 대해 for 루프를 실행하는 방법

<div class="form-group" ng-controller="MyController as myCtrl"> 
    <div><label>Trying to run the for loop on {{myCtrl.getMyIntegerArray()}} array</label></div> 
    <select class="form-control input-xsmall inline"> 
     <option>Year</option> 
     <% for(var i=0; i <= {{myCtrl.getMyIntegerArray().length}}; i++) { %> 
     <option>{{myCtrl.getMyIntegerArray()[i]}}</option> 
     <% } %> 
    </select> 
</div> 

누군가가 나를 도울 수 :

그에 대한 코드는 다음?

+1

'ng-repeat' 또는'ng-options'를 사용하지 않는 이유는 무엇입니까? – runTarm

+0

@runTarm :'ng-reapt' 코드를 도와 주시겠습니까? 나는 그것을 조금 해봤지만 그것을 해결할 수 없었다. angularjs와 ejs에 익숙하지 않습니다. – skip

+0

@runTarm :'myIntegerArray = [1234, 5678, 9012, 3456];은 다음과 같습니다. – skip

답변

1

여기에서 ejs을 사용할 필요는 없습니다. angularjs에는 자체 템플릿 엔진이 있습니다.

당신은이 같은 ng-repeat 사용하여 당신이 원하는 것을 얻을 수 있습니다

<select class="form-control input-xsmall inline"> 
    <option>Year</option> 
    <option ng-repeat="value in myCtrl.getMyIntegerArray()">{{value}}</option> 
</select> 

을하지만 컨트롤러에이 같은 $scope에 결과를 저장하는 것이 좋습니다 :

app.controller('MainCtrl', function($scope) { 
    this.getMyIntegerArray = function() { 
    return [1234, 5678, 9012, 3456]; 
    }; 

    $scope.myIntegerArray = this.getMyIntegerArray(); 
}); 

및 HTML에서 :

<select class="form-control input-xsmall inline"> 
    <option>Year</option> 
    <option ng-repeat="value in myIntegerArray">{{value}}</option> 
</select> 

예 plunker :http://plnkr.co/edit/IttzGJfOzYdP9Du0uAPh?p=preview

희망 사항.

+0

네, 지금은 매력처럼 작동합니다. 슈퍼 물건. 감사합니다 :) – skip

+0

귀하의 환영 :) – runTarm

관련 문제