簡體   English   中英

數組的AngularJS ng-repeat不起作用

[英]Angularjs ng-repeat for array not working

我有通過此腳本創建的數組:

    $scope.bindModel = function(data) {
        $scope.model = data;
        $scope.projects = projectNames();
        $scope.$apply($timeout($scope.bindModel(data)));
    };

    /* Function that enumerates the names of the project in the list of model's object*/
    var projectNames = function () {
        var array = [];
        // SOME CODE . . .
        return array;
    };

它創建像這樣的數組:

$scope.projects = ["first project", "second project", "third project"];

當我嘗試通過ng-repeat =“ project in projects”在頁面上顯示它時,什么都沒有顯示,但是在調試控制台中,大量的都有值。 我哪里做錯了? 我在選擇中使用此:

<select class="chzn-border" style="width:98%">
     <option disabled selected style='display:none;'>Choose a project...</option>
     <option ng-repeat="project in projects" value="{{project}}">{{project}}</option>
</select>

的jsfiddle

據我介紹,angular並沒有意識到對$ scope.Projects所做的更改。 因此,您應該在apply中調用$scope.bindModel 嘗試使用超時,該超時會將您的代碼包裝在$ scope。$ apply中。

$timeout($scope.bindModel(data));

希望這會有所幫助。

我可以給您一個提示,從那里您可以找到解決ng-repeat問題的想法:

HTML:

<div ng-app ng-controller="MyController">
    <input type="submit" ng-click="projectNames()" value="submit"></input>
    <select class="chzn-border" style="width:98%">
     <option disabled selected style='display:none;'>Choose a project...</option>
     <option ng-repeat="project in projects" value="{{project}}">{{project}}</option>
</select>

Angular JS:

function MyController($scope) {
  // $scope.bindModel = function(data) {
        //$scope.model = data;
        //$scope.projects = projectNames();
    //alert($scope.projects);
    //};

    $scope.projects = [];
    $scope.projectNames = function () {
        $scope.projects.push(" a is a project.");
        $scope.projects.push(" b is a project.");
        $scope.projects.push(" c is a project.");
    };

}

在這里,我使用了一個有助於加載數組的按鈕,然后在html中將ng-repeat應用於數組以顯示數據。 您可以根據需要在加載時加載數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM