2015-03-18 3 views
0

У меня есть эта проблема, выводя результат $scope.getID в html, потому что результат будет показывать 0 каждый раз при запуске функции и делать вычисления просто хочу спросить, как напечатать правильный результат с помощью углового ng-повторителя https://jsfiddle.net/1m77eshv/ng-репитер печатный результат 0; когда я запускаю функцию

Javascript

debugger; 
angular.module("app", []) 
    .controller('ctrl', ['$scope', 

function ($scope) { 
    $scope.model = { 
     categories: [{ 
      "Id": 1, 
      name: '1' 
     }, { 
      "Id": 2, 
      name: '2' 
     },{ 
      "Id": 3, 
      name: '3' 
     },{ 
      "Id": 4, 
      name: '4' 
     }] 

    } 
    $scope.result = 0; 
    $scope.getID = function(id){ 
     id=+2; 
     $scope.result =id; 
     console.log(parentId) 
     return result; 
    } 
}]) 

HTML

<div ng-app="app" ng-controller="ctrl"> 
     <div ng-repeat="category in model.categories"> <span> Category: {{ category.name }} </span> 
      <div ng-init="getID(category.Id)"> 
    {{result}} 
     </div> 
    </div> 
+0

Любая причина, по которой вы «результат» рассчитывается только по клику? Кроме того, ваш 'ng-repeat' будет ссылаться на один и тот же« результат »для каждого элемента в« категориях ». Вы хотите, чтобы каждый повторный div показывал один и тот же «результат»? – inorganik

+0

Извините, парень, я обновил код, чтобы использовать ng-init, а не ng-click извините за эту опечатку –

+0

@inorganik этот код имитирует проблему. У меня есть реальный код, потому что я делаю просто случайный расчет, чтобы увидеть, могу ли я напечатать результат, и я run repeater –

ответ

1

Вы проблема в том, что вы имеют только одну переменную «result», поэтому она будет всегда одинаковой внутри повтора. Если все, что вам нужно, это увидеть цикл работы, вот ваш код: https://jsfiddle.net/1m77eshv/3/

<div ng-app="app" ng-controller="ctrl"> 
    <div ng-repeat="category in model.categories"> <span> Category: {{ category.name }} </span> 
    <div> 
     {{getID(category.Id)}} 
    </div> 
</div> 
function ($scope) { 
    $scope.model = { 
     categories: [{ 
      "Id": 1, 
      name: '1' 
     }, { 
      "Id": 2, 
      name: '2' 
     },{ 
      "Id": 3, 
      name: '3' 
     },{ 
      "Id": 4, 
      name: '4' 
     }] 

    } 

    $scope.getID = function(id){ 
     return id+=2; 

    } 
}]) 
+0

Вместо '{{results [$ index]}}' почему не просто '{{getID (category.Id)}}' с его исходной функцией getID? – inorganik

+0

Просто пытаюсь изменить минимальный код вопроса, но я могу изменить пример –

+0

. Ваша модификация неверна, вы по-прежнему просто ссылаетесь на «результат». Извлеките интерполяцию все вместе и просто измените 'ng-init' на' ng-bind-html' – inorganik

Смежные вопросы