我去列表视图页面点击任何元素的编辑。更改文本框上的内容,然后单击取消。这将导航到列表视图,但即使没有我保存,条目现在也会更新。
路线
(function () {
'use strict';
angular.module('myApp.Group', ['ngRoute'])
.config(['$routeProvider', function ($routeProvider, $rxStatusTagsProvider) {
$routeProvider.when('/group/list', {
templateUrl: 'group/templates/list_view.html',
controller: "GroupListCtrl"
});
$routeProvider.when('/group/edit/:id', {
templateUrl: 'group/templates/edit.html',
controller: "GroupEditCtrl"
});
}]);
//http://localhost:5000/groups/list
}());
Ctrl
(function () {
"use strict";
angular.module('myApp.Group')
.controller("GroupListCtrl", function ($scope, GroupService) {
$scope.groups = GroupService.list();
})
.controller("GroupEditCtrl", function ($scope, $routeParams, $location, GroupService) {
var id = $routeParams.id;
$scope.id = id;
$scope.entry = GroupService.get(id);
$scope.save = function (entry) {
GroupService.save(entry);
$location.path('/group/list');
};
})
}());
服务
(function () {
"use strict";
angular.module('myApp.Group')
.service('GroupService', function ($http, $location, $rootScope) {
var uid = 1,
listData = [
{"id": 1, "name": "System Admins", "description": "Lorem ipsuem"},
{"id": 2, "name": "OS Admin", "description": "Lorem ipsuem"}
];
this.get = function (id) {
return listData[id - 1];
};
});
}());
编辑 tmpl
<form method="post" ng-submit="groupForm.$valid && save(group)" name="groupForm" novalidate>
<rx-form-fieldset>
<rx-form-item label="Name">
<input type="text" ng-model="entry.name" name="groupName" required autofocus ng-minlength="3" ng-maxlength="30"/>
<div ng-show="groupForm.groupName.$dirty && groupForm.groupName.$invalid">
<span class="error" ng-show="groupForm.groupName.$error.required">Required!</span>
<span class="error" ng-show="groupForm.groupName.$error.minlength">Too short!</span>
<span class="error" ng-show="groupForm.groupName.$error.maxlength">Too long!</span>
</div>
</rx-form-item>
<rx-form-item label="Description">
<textarea rows="10" cols="30" ng-model="entry.description" name="groupDescription" required ></textarea>
<div ng-show="groupForm.groupDescription.$dirty && groupForm.groupDescription.$invalid">
<span class="error" ng-show="groupForm.groupDescription.$error.required">Required!</span>
</div>
</rx-form-item>
<rx-button toggle-msg="Loading..." default-msg="Save" type="submit" ></rx-button>
<rx-button ng-controller="redirectCtrl" default-msg="Cancel" ng-click="back('group/list')"></rx-button>
</rx-form-fieldset>
</form>