【问题标题】:Angular Reset Initialization Value which is in view not in controller视图中不在控制器中的角度重置初始化值
【发布时间】:2017-01-20 05:09:57
【问题描述】:

我有初始对象和值,而不是来自控制器。

<input type="text" data-ng-show="false" data-ng-init="crud.data.userId=1" data-ng-model="crud.data.userId">

<input type="text" data-ng-show="false" data-ng-init="crud.data.userParentId=2" data-ng-model="crud.data.userParentId">

其余的表单元素可供用户输入。

<input type="text" data-ng-model="crud.data.userFamilyName">
<input type="text" data-ng-model="crud.data.userSpouseName">

我想在提交表单后重置那些我没有初始值的表单元素。

我知道可以通过从控制器初始化它来完成,但我有 100 个表单。

【问题讨论】:

    标签: angularjs reset


    【解决方案1】:

    data-ng-init 在视图加载(未从缓存中恢复)并设置对象值时工作。如果您想重新调用data-ng-init,您必须在提交表单后重新加载它。您可以尝试保持缓存为假并刷新视图。如果它们没有初始值,这将使所有输入字段为空。并填写值(如果有)。

    或者您可以简单地重新加载应用程序(不推荐)。

    【讨论】:

    • 我必须以模态填充表单。这种情况下如何实现。
    • 对不起,我没听明白:我必须以模态填充表单。您可以为表单制作控制器。您可以在其中初始化表单字段。你可以有一个提交函数,它将表单提交到服务器,成功后它将重置那些范围变量,如 rud.data.userId=1,以及其他为空。这将是简单且易于管理的。我从来没有使用 init 函数让视图变得如此复杂。
    • 我有任何选项可以在不重新加载的情况下重新渲染视图。
    • 我也尝试重新渲染视图,但它没有帮助。但是您可以通过将缓存设置为 false 然后刷新视图来尝试。 $state.go($state.current, {}, {reload: true});。可能会对你有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 2015-12-06
    • 2010-10-24
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    相关资源
    最近更新 更多