代码之家  ›  专栏  ›  技术社区  ›  SB77

温泉开关触发回调故障

  •  1
  • SB77  · 技术社区  · 9 年前

    我正在尝试使用onsen-ui来实现一个开关元素,以启用/禁用BT,并在与控制器js对话时遇到问题。

        <script>
            var app = angular.module('app', ['onsen']);
            app.controller('Controller', function($scope) {
                $scope.item=[{selected:true}];
                $scope.enBT = function(){
                    var Checked = BTSwitch.isChecked();
                    alert(Checked);
                }
            }
        </script>
    

    下面是我的HTML代码。

        <div class="app">
            <h1 >Apache Cordova using Onsen</h1><br /><br />
            <ons-span id="enBluetooth" style="font-size: 40">  Enable bluetooth 
                <label class="switch">
                    <input type="checkbox" var="BTSwitch" ng-model="item.selected" ng-change="enBT" class="switch__input">
                    <div class="switch__toggle"></div>
                </label>
            </ons-span><br />
        </div>
    

    开关UI显示,但我无法让它响应ng更改,也无法将启动状态显示为true,这是在JS中设置的。请有人告诉我我做错了什么?谢谢你的帮助!

    1 回复  |  直到 9 年前
        1
  •  1
  •   cither    9 年前

    首先,您需要设置 ng-app 包装器元素中的属性,或调用 angular.bootstrap(document, ['app']) ,以运行应用程序。

    第二,你需要设置 ng-controller 属性将控制器绑定到视图。

    第三 $scope.item 不需要是数组。只是 $scope.item = {selected: true} 足够了。

    代码中还有一些其他错误。尝试下面的代码段。

    var app = angular.module('app', ['onsen']);
    app.controller('Controller', function($scope) {
      $scope.item= {selected:true};
      $scope.enBT = function(){
        var Checked = $scope.item.selected;
        alert(Checked);
      };
    });
    <link href="https://cdn.rawgit.com/OnsenUI/OnsenUI/1.3.6/build/css/onsen-css-components.css" rel="stylesheet"/>
    <link href="https://cdn.rawgit.com/OnsenUI/OnsenUI/1.3.6/build/css/onsenui.css" rel="stylesheet"/>
    <script src="https://cdn.rawgit.com/OnsenUI/OnsenUI/1.3.6/build/js/angular/angular.min.js"></script>
    <script src="https://cdn.rawgit.com/OnsenUI/OnsenUI/1.3.6/build/js/onsenui.min.js"></script>
    
    
    <div ng-app="app" class="app" ng-controller="Controller">
      <h1 >Apache Cordova using Onsen</h1><br /><br />
      <ons-span id="enBluetooth" style="font-size: 40">  Enable bluetooth 
        <label class="switch">
          <input type="checkbox" var="BTSwitch" ng-model="item.selected" ng-change="enBT()" class="switch__input">
          <div class="switch__toggle"></div>
        </label>
      </ons-span><br />
    </div>