The HTML specification does not require browsers to preserve the values of boolean attributes such as open. (Their presence means true and their absence means false.) If we put an Angular interpolation expression into such an attribute then the binding information would be lost when the browser removes the attribute. The ngOpen
directive solves this problem for the open
attribute. This complementary directive is not removed by the browser and so provides a permanent reliable place to store the binding information.
<DETAILS
ng-open="">
...
</DETAILS>
Param | Type | Details |
---|---|---|
ngOpen | expression | If the expression is truthy, then special attribute "open" will be set on the element |
Check me check multiple: <input type="checkbox" ng-model="open"><br/><details id="details" ng-open="open">
<summary>Show/Hide me</summary>
</details>
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();});