我在列表中使用了ons-switchView,如下所示:
<ons-list-item modifier="item" class="list__item__line-height">
Switch View <ons-switch modifier="list-item" var="switchView" ng-click='onSwitchViewClick()'></ons-switch>
</ons-list-item>
在我的控制器中,我想尝试以下内容:
if (localStorageService.get('switchView') === 'grid') {
$scope.switchView.setChecked(true);
}
else {
$scope.switchView.setChecked(false);
}
但是,我收到一些错误,说明未定义的错误。我猜这里肯定是错的:
$scope.switchView.setChecked(true);
但我无法让它发挥作用。任何帮助都非常感谢!
答案 0 :(得分:2)
我猜你在DOM上初始化之前试图从控制器访问switch,这就是你得到未定义错误的原因。
这是一个有效的CodePen example。和相关的代码。
在你的情况下,代码应该是这样的(我用一个按钮检查值,但你也可以动态地执行):
<强> HTML 强>
<div ng-controller="MyController">
<ons-list-item modifier="item" class="list__item__line-height">
<ons-switch var="switch"></ons-switch>
<ons-button ng-click="checkSwitch()">Check switch status</ons-button>
</ons-list-item>
</div>
<强>控制器强>
ons.bootstrap()
.controller('MyController', function ($scope) {
$scope.checkSwitch = function() {
if(localStorageService.get('switchView') === 'grid')
$scope.switch.setChecked(true);
else
$scope.switch.setChecked(false);
};
});