ng-open

HTML 规范中没有要求浏览器保存属性的布尔值,如 open (这些属性存在则代表 true,不存在则代表 false)如果我们将一个 Angular 的插值表达式放入一个这样的属性中,那么当浏览器删除这个属性时, 我们将丢失绑定的信息。ngOpen 指令解决了 open 属性的这个问题。这个补充的属性不会被浏览器移除 并且提供了一个永久可靠的地方来存储绑定信息。

指令信息

这个指令的执行优先级为100级

用法

用作属性:

<DETAILS
  ng-open="expression">
...
</DETAILS>

参数

参数 形式 详细
ngOpen expression 如果表达式为真,则特殊的属性 open 将会被设置到元素上

例子

index.html

<label>Check me check multiple: <input type="checkbox" ng-model="open"></label><br/>
<details id="details" ng-open="open">
   <summary>Show/Hide me</summary>
</details>

protractor.js

it('should toggle open', function() {
  expect(element(by.id('details')).getAttribute('open')).toBeFalsy();
  element(by.model('open')).click();
  expect(element(by.id('details')).getAttribute('open')).toBeTruthy();
});