#angularjs
#angularjs
Вопрос:
Смущает, почему значение текстового поля не меняется на «bbb» после нажатия кнопки во всплывающем окне.
jsfiddle прикреплен.
Пользовательский интерфейс:
<div ng-controller="MyCtrl">
<input type="text" ng-model="test_value"/>
<button ng-click="clickToOpen()">My Modal</button>
<script type="text/ng-template" id="templateId">
<div id="target" ng-click="test1()" ng-controller="MyCtrl">
<input type="button" ng-click="test()" value="Set Data" />
</div>
</script>
Контроллер:
var myApp = angular.module('myApp',['ngDialog']);
function MyCtrl($scope, ngDialog) {
$scope.test_value = 'aaa';
$scope.clickToOpen = function () {
$scope.dialog = ngDialog.open({ template: 'templateId' , scope : $scope});
};
$scope.test1 = function()
{
$scope.test_value = 'bbb';
console.log($scope.test_value);
$scope.dialog.close();
};
}
Комментарии:
1.Потому что кнопка
ngClick
указанаtest
как функция для вызова при нажатии кнопки, а неtest1
.div
ngClick
Не будет вызываться, потому что событие щелчка не будет распространяться от кнопки до div, если вы не напишете пользовательский обработчик событий.2. мой плохой. пожалуйста, смотрите Новую скрипку .. я пометил правильные события, но все еще нет luck..jsfiddle.net/mb6o4yd1/594
3. ответ обновлен новой скрипкой.
4. пожалуйста, подскажите, почему это не работает… jsfiddle.net/vuvxphv3/2
5. если я удалю ng-controller =»MyCtrl», он работает, но с ng-controller =»MyCtrl» он не работает… просто любопытно..
Ответ №1:
Измените эту строку
<div id="target" ng-click="test1()" ng-controller="MyCtrl">
<input type="button" ng-click="test()" value="Set Data" />
</div>
Для
<div id="target">
<input type="button" ng-click="test1()" value="Set Data" />
</div>