我的角度应用已经>页面上有1个表单。每个表格都可以保存或重置。每个表单上的字段不一定映射到自己的数据对象。
例如,我有两个数据必须才能获得并单独保存。让我们调用json块,a
和b
。
HTML:
<form>
<input type="text" ng-model="a.foo"/>
<input type="text" ng-model="b.bar"/>
</form
<form>
<input type="text" ng-model="b.bar[0].baz"/>
<input type="text" ng-model="a.boo"/>
</form
如果第一个表单只映射到a
而第二个表单映射到b
,那么重置数据就很简单了。但我不想重置页面上所有表单的所有a
或b
数据。我只想重置特定表单上表示的输入的特定数据字段。
我当前的逻辑主要是有效。取消时,我获取表单中的元素,获取其ng-model属性并根据ng-model字符串值动态重置a
和b
上的属性。这似乎是“脏”的,加上它对某些使用$ index特殊变量的ng-model属性不起作用,因为在执行.attr()时attr值不会被angular解析。什么是最好的解决方案?每个表单的不同模型可以映射回原始数据吗?
答案 0 :(得分:0)
打开表单时编辑正在编辑的对象的深层副本并进行编辑(angular.extend)
保存时只使用保存逻辑
取消后您将无需执行任何操作
e g
$script:YLUserCSV = Import-CSV "c:\ylusers.csv"
$result = Test-Path "c:\\ylusers.csv"
if($result -eq $FALSE){
Write-Host "Path to CSV does not exist: \\$env:computername\c$\ylusers.csv"
break
}
}
Function Analyze-UserAuthentication{
foreach ($row in $script:YLUserCSV){
write-host "$row.username"
if ($row.authenticationtype -eq "LDAP"){
$script:LDAPUsers += $row.username
}
elseif ($row.authenticationtype -eq "DATABASE"){
$script:DBUsers += $row.username
}
}
}
Function Check-DBUsers {
Write-Host "`nChecking accounts that use database authentication..." - ForegroundColor Yellow
$DBUsersInAD = @("`n")
foreach ($user in $script:DBUsers){
$DBUserCheck = Get-QADUser $user
if ($DBUserCheck -eq $NULL){
Write-Host "No Active Directory user $user found."
}
elseif ($DBUserCheck -ne $NULL){
$DBUsersInAD += $DBUserCheck.Name+"`n"
}
else {
out-null
}
}
Write-Host "`nDatabase authenticated Yodle Live users associated with AD accounts:" -ForegroundColor Yellow
Write-Host $DBUsersInAD | FL
}
Function Check-LDAPUsers {
Write-Host "`nChecking accounts that use LDAP authentication...-ForegroundColor Yellow
$LDAPUsersinAD = @("`n")
$inADandEnabled = @("`n")
$inADandDisabled = @("`n")
$notinAD = @("`n")
foreach ($user in $script:LDAPUsers){
$LDAPUserCheck = Get-QADUser $user
if ($LDAPUserCheck -ne $NULL){
$LDAPUsersinAD += $LDAPUserCheck.Name+"`n"
if ($LDAPUserCheck.AccountIsDisabled -ne $TRUE){
$inADandEnabled += $LDAPUserCheck.Name+"`n"
}
elseif ($LDAPUserCheck.AccountIsDisabled -eq $TRUE){
$inADandDisabled += $LDAPUserCheck.Name+"`n"
}
}
else {
$notinAD += $user+"`n"
$LDAPUserCheck = $NULL
}
}
Write-Host "`nEnabled Yodle Live accounts associated with disabled AD Users:" -ForegroundColor Yellow
Write-Host $inADandDisabled | FL
Write-Host "`nEnabled Yodle Live accounts not associated with any AD User:" -ForegroundColor Yellow
Write-Host $notinAD | FL
}
Set-ScriptVars
Import-UserData
Analyze-UserAuthentication
Check-DBUsers
Check-LDAPUsers
答案 1 :(得分:0)
我之前没有这样做过,但你可以试试下面的内容:
Error
SQL query: Documentation
GRANT SELECT ON mysql.host TO 'pma'@'localhost'
MySQL said: Documentation
#1146 - Table 'mysql.host' doesn't exist
可以轻松引用特定于表单的元素。然后,要重置,您只需使用<form>
<input type="text" ng-model="form1.element1" ng-change="a.foo=form1.element1"/>
<input type="text" ng-model="form1.element2" ng-change="b.bar=form1.element2"/>
</form>
<form>
<input type="text" ng-model="form2.element1" ng-change="b.bar[0].baz=form2.element1"/>
<input type="text" ng-model="form2.element2" ng-change="a.boo=form2.element2"/>
</form>
重置form1
或form2
个对象的初始值。
使用这种方法可能需要注意的一件事是,一旦输入一些值并重置,虽然angular.copy()
或form1
将被重置,但form2
中仍可能存在值和a
对象,你可能想要处理它(例如禁用提交)