如何在onsen SwitchView中使用setChecked

时间:2015-06-26 07:04:16

标签: onsen-ui

我在列表中使用了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);

但我无法让它发挥作用。任何帮助都非常感谢!

1 个答案:

答案 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);
  };
});