Сейчас я изучаю angularjs, и я не понимаю, как я могу выполнить задачу, потому что я не совсем понимаю, что делает ngModel.
Если у меня есть директива с двумя переменными области видимости:
// An array of all my objects
$scope.allMyObjects
// The currently selected object from the array
$scope.selectedObject
и в хтмл
<span>{{ selectedObject.name }}</span>
<select id="select"
ng-model="selectedObject"
ng-options="object in allMyObjects">
</select>
Все это работает отлично, когда я выбираю объект из выбора, он обновляет selectedObject
в области, и поэтому отображается имя текущего выбранного объекта.
Однако мне не нужно поле выбора, вместо этого мне нужен список всех моих объектов с редактируемым полем имени и кнопкой выбора, которую я могу использовать для выбора указанного объекта, поэтому я придумал следующее:
<div ng-repeat="object in allMyObjects">
<input class="object-name"
ng-model="object.name">
<a ng-click="loadObject(object)">Load</a>
</div>
и функция loadObject()
в области видимости:
function loadObject(object) {
$scope.selectedObject = object;
}
Однако это не работает. Я предполагал, что это в основном то, что ngModel делает за кулисами, но я явно сбит с толку. Кто-нибудь может пролить свет или предложить лучшее решение того, чего я хочу достичь?
loadObject
не определяется как свойство$scope
и, таким образом, никуда не ведет, когда директиваng-click
пытается выполнить строкуloadObject(object)
. Это ваша проблема? - person Philipp Gayret   schedule 25.07.2014