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();
}
})