当前位置: 首页 > 面试题库 >

使用angularjs检测未保存的数据

冯翔
2023-03-14
问题内容

我是AngularJs的新手,所以这可能微不足道。是否有内置的AngularJ
directive来检测表单中未保存的数据。如果没有,那么如何去写一个。任何指针将不胜感激。

html代码是

<input type="text" runat="server" />

我的角度js控制器代码是

    function MyCtrl1($scope) {
      // code to do stuff
}MyCtrl1.$inject = ['$scope'];

我正在尝试编写指令以检测未保存的数据,并且我猜想它会写在上述控制器中。


问题答案:

AngularJS设置CSS类ng-pristineng-dirty任何输入栏你已经使用在NG-
模型,您的FormController拥有的属性$pristine$dirty您可以查看是否窗体是脏的。是的,这是可能的。

您能提供一些代码来显示您要做什么吗?这样可以更轻松地为您提供帮助。

编辑

这是有关如何检测原始/脏状态以及如何还原为原始状态的简单示例:

<!doctype html>
<html ng-app>
<head>
    <script src="http://code.angularjs.org/1.1.2/angular.min.js"></script>
    <script type="text/javascript">
    function Ctrl($scope) {
        var initial = {text: 'initial value'};
        $scope.myModel = angular.copy(initial);
        $scope.revert = function() {
            $scope.myModel = angular.copy(initial);
            $scope.myForm.$setPristine();
        }
    }
    </script>
</head>
<body>
    <form name="myForm" ng-controller="Ctrl">
        myModel.text: <input name="input" ng-model="myModel.text">
        <p>myModel.text = {{myModel.text}}</p>
        <p>$pristine = {{myForm.$pristine}}</p>
        <p>$dirty = {{myForm.$dirty}}</p>
        <button ng-click="revert()">Set pristine</button>
    </form>
</body>
</html>


 类似资料:
  • 问题内容: 下面是到目前为止的代码 如何发出警报或是否有一些未保存的数据,以便用户决定是否继续? 问题答案: 这样的事情应该做到: 请注意,在此示例中未触发$ locationChangeStart的侦听器,因为在这样一个简单的示例中AngularJS不处理任何路由,但它应在实际的Angular应用程序中运行。

  • 问题内容: 我需要在ASP .Net应用程序中实现“未保存的更改”提示。如果用户修改了Web表单上的控件,并试图在保存之前导航离开,则将出现提示,警告他们尚未保存更改,并为他们提供取消并保留在当前页面上的选项。如果用户未触摸任何控件,则不应显示该提示。 理想情况下,我想用JavaScript实现此功能,但是在我开始滚动自己的代码之前,是否有任何现有的框架或推荐的设计模式来实现这一目标?理想情况下,

  • 如果Spring配置只包含Eagy(非惰性)singleton beans,即默认值,那么Spring是否可能在任何地方都没有注入这些bean的情况下抛出异常?我本质上是在寻找一种以Spring bean的形式检测死代码的方法。 我的问题有点类似于这些。 http://forum.spring.io/forum/spring-projects/container/116494-any-tools-

  • Im使用firebase,由于某些原因,我的代码没有推送数据,并且Im没有在firebase URL中看到数据。我的密码是这样的 我得到警报“保存”,但我无法在firebase URL中找到数据。 此外,为Firebase中的每个url提供的API键有什么用途。 更新:这种情况发生在IE10中。在其他浏览器中,它工作得很好

  • 我正在创建一个番茄工作计时器应用程序。它有2项活动: 主要活动是设置时间 我已经创建了一个对象,它保存了设置的时间,我希望这些时间显示在Recents活动中的按钮中。但是,似乎没有保存数据,而是显示了包名称。

  • 问题内容: 我目前正在尝试创建一个包含人名和ip的sqlite数据库,虽然我的代码在运行时似乎可以正常运行,但是在运行 下面的代码后在终端中运行时,数据却无法显示。它和都在〜/ Desktop / SQL中运行 我的计算机正在运行OSX 10.11.4,python 3.4和SQLite 3.14.1 我尝试将ips更改为main.ips并返回 问题答案: 您似乎没有提交到数据库。您需要在关闭连接