柠檬墨绿色 发表于 2016/11/9 14:44

js在ie下打开对话窗口的方法小结

  对话框的性质分为模态对话框和非模态对话框:

  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/
页: [1]
查看完整版本: js在ie下打开对话窗口的方法小结