Html 当没有使用表单标记时,angularjs如何检测$dirty?
我正在使用$window.addEventListener(“beforeunload”…用于检测是否对页面进行了更改,并且它的工作方式基本上符合预期。我还使用$transitions.onStart…来检测何时使用了后退/前进浏览器按钮。我不理解的是这是如何工作的,因为我的HTML模板中没有任何表单标记,只是在div中输入 我对此做了研究,似乎找不到答案,只是没有必要使用表单标签来检查输入的肮脏程度。我只是不确定这在后台是如何工作的Html 当没有使用表单标记时,angularjs如何检测$dirty?,html,angularjs,Html,Angularjs,我正在使用$window.addEventListener(“beforeunload”…用于检测是否对页面进行了更改,并且它的工作方式基本上符合预期。我还使用$transitions.onStart…来检测何时使用了后退/前进浏览器按钮。我不理解的是这是如何工作的,因为我的HTML模板中没有任何表单标记,只是在div中输入 我对此做了研究,似乎找不到答案,只是没有必要使用表单标签来检查输入的肮脏程度。我只是不确定这在后台是如何工作的 <div class="modal-header bg
<div class="modal-header bg-primary">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title pull-left">New Note</h4>
<div class="clearfix"></div>
</div>
<div class="modal-body">
<input type="textfield" ng-model="detailVM.newNoteContent">
<button ng-click="detailVM.addNewNote()">
Save New Note <span class="fa fa-check"></span>
</button>
</div>
这是我在控制器里的东西
当我将数据输入到输入中,然后尝试重新加载、关闭或单击“上一步”按钮时,会显示消息“您确定要离开此页面吗?”但它是如何检测输入是否脏的?
ng model
不需要以形式运行验证程序的
从AngularJS文档:
ngModel
指令绑定输入
、选择
、文本区域
(或自定义表单)
控件)添加到作用域上的属性,即
由本指令创建和公开
ngModel
负责:
- 将视图绑定到模型中,其他指令如输入,
textarea或选择require
- 提供验证行为(即。
必填项、号码、电子邮件、url)
- 保持控件的状态
(有效/无效、肮脏/原始、触摸/未触摸、验证错误)
- 在元素上设置相关css类(
ng valid
,ng invalid
,
ng dirty
,ng pristite
,ng toucted
,ng untoucted
,ng empty
,
ng不为空
),包括动画
- 将控件注册到其
家长
-
如果存在表单
,ngModelController
会将其控件注册到表单中。这为您提供了一个很好的容器,用于跟踪整个输入/控件集的状态。您看过了吗?我看过了。但这并没有告诉我它是如何检测到输入脏的。
// For page reloads and attempts to leave the site
$window.addEventListener('beforeunload', function (e) {
// Cancel the event
e.preventDefault();
// Chrome requires returnValue to be set
e.returnValue = '';
});
// For when a user hits the back button
$transitions.onStart({}, function ($transition)
{
var answer = confirm("Are you sure you want to leave this page? Changes you made may not be saved.")
if (!answer) {
$transition.abort();
return false;
}
return true;
});