我已經在我的項目中創建一個工廠如下初始化範圍對象的值,使用工廠對象的角度JS
app.factory('userFactory', userFactory);
function userFactory() {
var userInitialValueSettings = {
UserId: '',
FullName: '',
Location: '',
Phone: '',
Ext: '',
Fax: '',
Email: '',
IsExternalUser: false,
Password: '',
UserMustChangePassword: false,
PasswordNeverExpires: false
}
return {
userInitailValues: userInitialValueSettings
}
}
我用工廠的userInitialValues對象初始化我的範圍對象之一,因爲如下。
$scope.user = userFactory.userInitailValues;
我使用$ scope.user的屬性作爲一些輸入文本框的模型。我的表單中有一個清晰的按鈕。我需要清除文本框,同時點擊清除按鈕。所以我在清除按鈕點擊鉤住以下功能。
$scope.cancelAddUserDialoge = function() {
$scope.user = userFactory.userInitailValues;
}
但是文本字段沒有被清除。什麼是問題?有誰能夠幫助我?如果我在清除按鈕中使用以下方法單擊並單獨清除每個模型屬性,則文本框將被清除。
function ResetUserModel() {
$scope.user.UserId= '',
$scope.user.FullName = '',
$scope.user.Location = '',
$scope.user.Phone = '',
$scope.user.Ext = '',
$scope.user.Fax = ''
$scope.user.Email = '',
$scope.user.IsExternalUser = false,
$scope.user.Password = '',
$scope.user.UserMustChangePassword =false,
$scope.user.PasswordNeverExpires =false
}
爲什麼我不能使用工廠對象來清除模型?請幫幫我。
可能會更好使'userFactory.userInitialValues'函數返回一個副本,那麼調用者沒有t o永遠記得在使用前複製。 – Duncan
謝謝您的回覆。我已經嘗試過了。但它沒有奏效。我發現,它是2路更新。所以我按照你的建議使用了angular.copy。它在加載時在初始化中工作。但一個清除按鈕單擊文本字段不明確。 –
@ NOBLEM.O。你可以做一個小提琴並給我提供鏈接嗎? –