我正在使用角度材质,并且有一个md-switch项,其模型是根据JS对象中的值设置的。我面临的挑战是,当用户单击开关时,我不想直接更改对象值-相反,我想执行对象中的函数来为我更改值。
在代码(或下面的JSFiddle)中,您可以看到切换状态永远不会改变。
这是一个简单的例子,所以它没有说明原因,但是有可能这样吗?
这是示例代码
HTML
last_friday = datetime.now().date() - timedelta(days=datetime.now().weekday()) + timedelta(days=4, weeks=-1)
print(df[df['date'] <= pd.Timestamp(last_friday)])
JS
<div class="inset switchdemoBasicUsage" ng-controller="SwitchDemoCtrl" ng-cloak="" ng-app="MyApp">
<md-switch ng-model="data.state" aria-label="Switch 2" class="md-primary" ng-change="data.change()">
{{ data.state }}
</md-switch>
</div>
这是JSFiddle的链接:http://jsfiddle.net/wx8s709z/
答案 0 :(得分:1)
问题不在于它永远不会更改,而是您将其更改了两次。 第一次单击时更改,第二次通过功能更改。因此,如果将代码注释到调用函数中,您将看到所有工作正常。
ng-change是事件,它指示您更改了值,然后可以仅使用$ scope.data.state
调用具有其值的另一个函数。