angularjs не может прочитать данные привязки ng-repeat - не определено

angularjs - босс, но я еще не совсем разбираюсь в этом.

У меня одна проблема:

в основном я хочу, чтобы привязка ng-repeat ng-model была доступна для меня внутри функции в контроллере вида,

однако - я думаю, что html, возможно, загружается после заполнения $ scope, поэтому по какой-то причине - $scope.someVar.id переменная пуста, если я не щелкну привязанную к ней радиокнопку... даже если она проверена с помощью условия ng-checked. Визуально страница загружается и опция отмечена. однако привязка еще не готова для меня, даже после того, как я попытаюсь сделать несколько $scope.$apply в разных областях. увидеть ниже; Мне удалось обойти - но я хочу придерживаться метода angularjs, если он может быть решен....

Большое спасибо за вашу помощь заранее.

HTML:

<span ng-repeat="someVar in someArr">
<input type="radio" 
   class="some-inputs"
   ng-change="updateOptions()" 
   ng-model="somVar.id" 
   name="option" 
   value="{{someVar.value}}"
   ng-checked="someVar.id == 1" 
/>
</span>

<span ng-repeat="someOtherVar in someOtherArr">
<input type="checkbox" 
   ng-change="updateOptions()" 
   ng-model="somOtherVar.selected_options"
   data-data="{{somOtherVar.data}}" 
   name="option" 
   value="{{someOtherVar.value}}"
   ng-checked="true == true" 
/>
</span>

AngularJS:

// all arrays are from http JSON get - data is working fine no issues with the data, only issue with the binding ng-model inside the ng-repeat 


.controller('SomeCtrl', function($scope, $http) {


$scope.someArr = {};
$http.get('someURL?token='+auth.authtoken)
.success(function(res){
          $scope.someArr = res;                
        });

// OR if you want to see the data 
$scope.someArr = [ {"id":"1", "value":"a"}, {"id":"2", "value":"b"}, {"id":"3", "value":"b"} ]
$scope.someOtherArr = [ {"id":"1", "value":"a", "data":"X"}, {"id":"2", "value":"b", "data":"Y"}, {"id":"3", "value":"b", "data":"Z"} ]

   /// have tried this
   $scope.$apply;


   $scope.updateOptions = function() {

   /// and this
   $scope.$apply;


   // but this returns no value until i first click the radio button (someVar)
   $scope.selectedInput = $scope.someArr.id;

   // this works - and {{selectedInput is populated}}
   $scope.selectedInput = $('.some-inputs:checked').val();

  }

 })

0 ответов

Другие вопросы по тегам