如何将boolean属性添加到指令?

时间:2014-06-19 23:10:44

标签: javascript angularjs attributes angularjs-directive

在HTML中,有selected属性等属性:

<option selected>This option is selected</option>

它存在或不存在,转换为开/关(布尔)。

我找不到为AngularJs指令创建这样的属性的方法。有什么办法吗?

一个例子是:

<modal ng-show="modal.show" with-backdrop> // "with-backdrop" is a boolean attribute.

2 个答案:

答案 0 :(得分:0)

我再读一遍你的问题,我错了。要想要你想要的东西,你应该做下一个:

HTML元素: <modal id="myModal" ng-show="modal.show" with-backdrop>

在你的控制器中:

function somethingController() {
  var modalElement = document.querySelector('#myModal');

  // If you want to check that element have your attribute.
  var isMyAttributeSet = modalElement.getAttribute('with-backdrop') !== null;

  // If you want to set up the attribute.
  modalElement.setAttribute('with-backdrop', '');

}

setAttribute方法需要2个参数(attributeName,attributeValue),但是如果你传递一个空字符串作为第二个参数,那么该属性将被视为你想要的,我已经在chrome控制台中对它进行了测试:)

答案 1 :(得分:-1)

取决于你正在做什么,它会有所不同。在您的示例中,您想知道选择了哪个选项。通过检查<select>的模型可以找到它,看看它里面有什么。例如:

<select data-ng-model="user.defaultThing"
        data-ng-options="thing.id as thing.name for thing in thingCollection">
    <option value="">None</option>
</select>

使用此设置,只要更改选择,thing.id就会存储在user.defaultThing中。

注意:我在那里的“无”选项允许空选择。

现在,如果您正在查看是否检查了checkbox,那么它就像您只看到它所绑定的模型中的内容一样。

<input type="checkbox" data-ng-model="form.someOption">

当您开始处理表单时,只需查看form.someOptiontrue还是false