|
发表于 2016/11/9 14:44
|
显示全部楼层
|阅读模式
|Google Chrome 45.0.2454.101 |Windows 7
对话框的性质分为模态对话框和非模态对话框:
1.模态对话框:
打开该对话框之后,在该对话框之外的一切操作都是被禁止的,要想进行其他操作,必须先关闭本对话框。
js命令:
showModalDialog();
2.非模态对话框:
和模态对话框相反,打开之后,仍可以进行对话框之外的操作。
js命令:
showModelessDialog();
在我开始着手ngModel的领域时候,有一个问题很令我纠结,那就是$render()到底是做什么的呢?查了很多资料都只是简单的描述一下,这就令我很纠结了,终于在一个阳光明媚的晚上,我终于解决了这个大问题
那么这个$render方法到底是干什么的呢?他的用处就是在$viewValue改变的时候可以重新绑定model数据,但是我们要注意一点($viewValue和DOM节点的value是不同的),我觉得他们的区别有点类似setTimeout和$timeout的区别,但是又不太一样。ps:其实modelValue和绑定的数据也可以不同
?
1
2
Input里面模型的值:{{vm.modelTest}}
<input type="text" ng-model="vm.modelTest" model-render>
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.directive('modelRender', function () {
return {
require: 'ngModel',
link: function (scope, iElm, iAttrs, ngModelCtrl) {
iElm.on('mouseenter', function () {
//尝试注释
iElm.val(1);
console.log(ngModelCtrl);
//尝试注释
ngModelCtrl.$setViewValue(11);
console.log(ngModelCtrl);
//尝试注释
ngModelCtrl.$render();
console.log(ngModelCtrl);
})
}
}
})
我们分几种情况分析
这是鼠标没有经过指令的时候的样子
1.当我们使用js原生方法设置input的val值的时候,并且不执行$render函数,我们可以看到input里面的model值是没有变化的,但是input的的value是变成了1,而且我们看到不仅model值没有变化,ngModel的$viewValue和$modelValue同样也没有变化。我们可以得出结论 (input的value值不一定等于$viewValue)www.9ask.cn/shangqiu/ |
|