Ответ 1
2 вещи... и простые:)
-
ng-change=onSelectChange
должен бытьonSelectChange()
-
this.message
должен бытьthis.scopeMessage
Я использую поле выбора, которое заполняется ng-options
. К сожалению, я не могу получить функцию ng-change
для вызова.
Вот мой js
:
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.typeOptions = [
{ name: 'Feature', value: 'feature' },
{ name: 'Bug', value: 'bug' },
{ name: 'Enhancement', value: 'enhancement' }
];
$scope.scopeMessage = "default text";
var changeCount = 0;
$scope.onSelectChange = function()
{
changeCount++;
this.message = "Change detected: " + changeCount;
}.bind($scope);
//$scope.form = {type : $scope.typeOptions[0].value};
$scope.form = $scope.typeOptions[0].value;
}
И вот мой HTML
:
<div ng-controller="MyCtrl" class="row">
<select ng-model='form' required ng-options='option.value as option.name for option in typeOptions' ng-change="onSelectChange"></select>
<div style="border:1px solid black; width: 100px; height:20px;">{{scopeMessage}}<div>
</div>
В настоящее время я поддерживаю мой проект для работы, поэтому любая помощь будет оценена по-разному. Спасибо!
2 вещи... и простые:)
ng-change=onSelectChange
должен быть onSelectChange()
this.message
должен быть this.scopeMessage
Ваша проблема в том, что вы передаете ссылку на функцию в директиве ng-change. Однако эта директива ожидает выражение, которое может быть оценено. Поэтому прикрепите круглые скобки к функции, чтобы ее можно было оценить как вызов функции.
Как здесь: http://jsfiddle.net/MTfRD/1101/
<select ng-model='form' required ng-options='option.value as option.name for option in typeOptions' ng-change="onSelectChange()"></select>