2
我有一個表單,我用來修改用戶的名稱/電子郵件地址的模式形式。問題是它向服務器發送請求以檢查所有情況下的唯一值,在創建新記錄時很好,但如果我正在修改某些內容,我想忽略當前值。 這裏是彈出式的HTML代碼檢查唯一的名稱,並在修改的情況下忽略
<form>
<input type="text" ng-model="username" unique-url="/test/to/unique" />
</form>
這種模式形式是通過改變模型值加載,這樣
$scope.showModal = function(row) {
$scope.username = row.name;
showTheFormModal();
}
這裏是指令
myAPP.directive('uniqueUrl', ['$http', function($http) {
return {
require: 'ngModel',
link: function(scope, ele, attrs, c) {
var url = attrs.uniqueNameUrl + '?';
scope.$watch(attrs.ngModel, function() {
$http({
method: 'GET',
url: url + $.param({'name': ele.val()})
}).success(function(isUnique,status,headers,cfg) {
var iu = isUnique == 'true' ? true : false;
c.$setValidity('unique', iu);
}).error(function(data,status,headers,cfg) {
c.$setValidity('unique', false);
});
});
}
}
}])
也許它是有道理的更好地解決它在服務器上? – dfsq 2014-10-04 08:05:48
我可以修復服務器,但是由於ng-model的值正在根據不同的行進行更改,所以不知道每次打開彈出窗口時如何跟蹤原始值 – FarazShuja 2014-10-04 08:17:13