0
Я пытаюсь выбрать правильный шаблон при нажатии переключателя, но значение ng-model не распространяется на $ scope. вот мой контроллер:
eventsApp.controller('FirstTestController',
function FirstTestController($scope, $filter) {
$scope.menu = ['List', 'Table'];
//$scope.checkedMenuItem = null;
$scope.data = [
{ action: "Get groceries", complete: false },
{ action: "Call plumber", complete: false },
{ action: "Buy running shoes", complete: true },
{ action: "Buy flowers", complete: false },
{ action: "Call family", complete: false }];
$scope.chooseTemp = function() {
if ($scope.checkedMenuItem == 'Table') {
return 'templates/testTemp.html';
}else {
return 'templates/listTemp.html';
}
};
});
вот мой HTML:
<form name="myForm" ng-controller="FirstTestController">
<div ng-repeat="menuItem in menu">
<label>
<input type="radio" name="group" ng-model="checkedMenuItem" value="{{menuItem}}" />
{{menuItem}}{{checkedMenuItem}} </label>
</div>
<ng-include src="chooseTemp()"></ng-include>
</form>
значение $ scope.checkedMenuItem всегда не определено. Спасибо. Michael
потому что вам нужно использовать объекты в 'ng-model' не примитивах. 'ng-repeat' создает дочернюю область – charlietfl
Ваш комментарий помог мне: я искал, как получить доступ к родительской области из области содержимого, и это сработало. Должен быть ng-model = "$ parent.checkedMenuItem" Спасибо – user1272913
no ... никогда не должен использовать '$ parent' ... должен определять объект в области контроллера и использовать его вместо этого. Может быть пустым объектом, а 'ng-model' добавит свойства и значения ... один объект в форме – charlietfl