md-checkbox不会被指令的link()函数中的ng-model值设置

时间:2017-06-20 11:39:59

标签: angularjs angular-material

我正在根据指令构建调查问卷,根据某些期望显示正确的input。这些期望(包括来自用户的任何先前给出的输入)来自父$scope。一切都在AngularJS的指令定义对象的link函数中设置

使用md-checkbox时出错的地方:指令内的复选框的ng-model设置为truemd-checkbox仍为false。我可以通过添加一个具有相同input type="checkbox"属性的简单ng-model来确认,选中简单复选框,而md-checkbox不是。

每当我点击md-checkbox两次,就会检查它。所以我认为绑定有问题。我构建了一个CodePen来演示它。笔中的代码几乎是从我的源代码中逐字记录的

我已经尝试过的东西:

  • 在处理$scope.$apply()函数
  • 中的所有(DOM)逻辑后使用link
  • 同上,但$scope.$digest()
  • 毫不拖延地设置$timeout(作为'安全'$apply()的方式)
  • 甚至可以将当前答案(truefalse)存储在变量中,将ng-model属性设置为undefined,然后将其设置回来存储的值,全部在$timeout

我在这里失去了,看起来很简单,因为所有其他输入都有正确的数据。

2 个答案:

答案 0 :(得分:1)

Depending on your codepen the problem is class="md-checkbox-{{expression}}". I forked your codepen. You can use ng-class. I think this is a bug.

答案 1 :(得分:1)

Replace class with ng-class because ng-class lets you to dynamically bind the class to the element