У меня есть модель, которую я хочу редактировать, но по какой-то причине ничего не меняется, текстовое поле не отображается и модель не обновляется при использовании ng-view
.Изменения в модели AngularJs не обновляются
Я вижу функцию enableEditor()
вызывается с использованием console.log
.
Если я пишу это рядный вместо ng-view
в index.html без profile.html все работает отлично.
здесь файлы:
app.js
var proGamersApp = angular.module('proGamersApp', ['ngResource']).
config(function ($routeProvider) {
$routeProvider.
when('/', { controller: 'ProfileController', templateUrl: '/app/partials/profile.html' }).
otherwise({ redirectTo: '/' });
});
var ProfileController = function ($scope) {
$scope.init = function() {
$scope.title = 'first title';
};
$scope.init();
$scope.enableEditor = function() {
console.log('enableEditor()')
$scope.editorEnabled = true;
$scope.editableTitle = 'second title';
$scope.title = 'second title';
};
...
};
index.html
<!doctype html>
<html ng-app="proGamersApp">
<head>
<title>Pro Gamers</title>
<!-- Scripts -->
<script src="/app/lib/angular.min.js"></script>
<script src="/app/lib/angular-resource.js"></script>
<script src="/app/app.js"></script>
</head>
<body>
<div ng-view></div>
</body>
</html>
profile.html
<div ng-hide="editorEnabled">
{{title}}
<a href="#" ng-click="enableEditor()">Edit title</a>
</div>
<div ng-show="editorEnabled">
<input ng-model="title" ng-show="editorEnabled">
<a href="#" ng-click="save()">Save</a>
or
<a href="#" ng-click="disableEditor()">cancel</a>.
</div>
Кто-нибудь знает, что я делаю неправильно?
благодаря
Добавить 'target = _self' к вашим ссылкам,' # 'в конце, вероятно, обновляет страницу, так как она добавляет вашу ссылку. – tymeJV
Я заменил href = "#" на href = "target = _self", и я вижу, что страница меняется, и появляется текстовое поле, но после мгновенного взгляда оно меняется обратно в ничто. если я удалю атрибут href элемента a, он не похож на ссылку, но выполняет задание. Вы знаете, как правильно это сделать? –
Да, вы не должны использовать якоря, которые ничего не нацеливают, вместо этого используйте диапазон с правильным стилем CSS, чтобы он выглядел как ссылка (я знаю, использование пустых ссылок является заманчивым и легким, но вы столкнулись с такими проблемами) – tymeJV