pisałem jakiś uproszczony kod na http://jsfiddle.net/gsche/1/angularjs dane wiążące nie działa
Kiedy klikam odnośnik „Refresh”, model „customer.name” nie aktualizuje widok.
Napisałem kod na moim lokalnym komputerze i debugowałem go za pomocą Batarangu w przeglądarce Chrome.
Konsola nie pokazuje żadnych błędów. Strona Model w Batarangu pokazuje zmianę nazwy klienta po prawej stronie, powiązaną ze starym identyfikatorem zakresu, ale zmieniają się także identyfikatory $ zakresów.
Czy ktoś może wskazać mi właściwy kierunek?
<div ng-app>
<div ng-controller="MainCtrl">
<p> <a href="#" ng-click="Refresh()">Refresh</a> </p>
<p>
<input type="text" ng-model="customer.name">
</p>
<p>{{ customer.name }}</p>
</div>
</div>
function MainCtrl($scope) {
$scope.customer = {
name: 'TTT',
id: 0
};
$scope.Refresh = function ($scope) {
$scope.customer.name = 'Test';
};
}
Update 1 08.08.2013 Dziękuję wszystkie (@EpokK, @Stewie, @Hippocrates). Nie mogę teraz rozwiązać problemu z jsfiddle, a przykład działa tak, jak powinien.
Jednak w mojej aplikacji testowej działa powiązanie {{customer.name}}, ale kliknięcie "Odśwież" nadal nie zmienia wartości {{customer.name}} w widoku.
Oto treść mojej aplikacji. Myślę, że jest taka sama jak jsfiddle przykład:
index.html
<!doctype html>
<head>
<title>Test</title>
</head>
<body ng-app="roaMobileNgApp">
<script src="scripts/angular.js"></script>
<script src="scripts/angular-ui.js"></script>
<link rel="stylesheet" href="scripts/angular-ui.css">
<div class="container" ng-view=""></div>
<script src="scripts/app.js"></script>
<script src="scripts/controllers/main.js"></script>
</body>
</html>
app.js
'use strict';
angular.module('roaMobileNgApp', ['ui'])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.otherwise({
redirectTo: '/'
});
});
main.js
'use strict';
angular.module('roaMobileNgApp')
.controller('MainCtrl', function ($scope) {
$scope.customer = {name: '',
id: 0};
$scope.getDetails = function() {
$scope.customer.name = 'Test';
};
});
main.html
<div ng-controller="MainCtrl">
<a href="#" ng-click="getDetails()">Refresh</a>
<p><input type="text" ng-model="customer.name"> {{ customer.name }} </p>
</div>
Dziękuję wszystkim. Problem jsfiddle został rozwiązany, ale link "Odśwież" w mojej aplikacji nadal nie aktualizuje "nazwa klienta". Zaktualizowałem moje pytanie z plikami źródłowymi. –
Mam odpowiedź na mój problem. Funkcja a href = "#" powodowała odświeżenie strony. Jeśli ktoś ma ten sam problem, zobacz http://stackoverflow.com/questions/18127523/ng-click-does-not-update-model –
Prawidłowy HTML5 nie wymaga HREF w elemencie kotwicy, aby można było go usunąć to. –