2016-05-07 46 views
0

有沒有人能夠向我解釋爲什麼$ scope沒有變量?

如果你在輸入中輸入了一些東西,可以看到顯示的是變量,但是如果你打開一個控制檯,我試圖通過console.log顯示一個變量,其中$ scope.presearch是空的''。

我們如何擺脫離子的,所有作品的指示,所以我懷疑他莫名其妙隔離範圍

<!DOCTYPE html> 
<html ng-app="StarterApp"> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
    <title>Ionic Seed App</title> 

     <link rel="stylesheet" type="text/css" href="http://code.ionicframework.com/1.3.0/css/ionic.css"> 

     <script src="http://code.ionicframework.com/1.3.0/js/ionic.js"></script> 
     <script src="http://code.ionicframework.com/1.3.0/js/angular/angular.js"></script> 
     <script src="http://code.ionicframework.com/1.3.0/js/angular/angular-animate.js"></script> 
     <script src="http://code.ionicframework.com/1.3.0/js/angular/angular-sanitize.js"></script> 
     <script src="http://code.ionicframework.com/1.3.0/js/angular-ui/angular-ui-router.js"></script> 
     <script src="http://code.ionicframework.com/1.3.0/js/ionic-angular.js"></script> 


     <script src="app.js"></script> 
     <!--<script src="controllers.js"></script>--> 
    </head> 

    <body ng-controller="AppCtrl"> 
    <ion-side-menus> 
    <ion-side-menu side="left"> 
     <ion-content> 
      <div class="mobile-menu sidebar-left"> 
       Menu 
      </div> 
     </ion-content> 
    </ion-side-menu> 
    <ion-side-menu-content> 
     <ion-content overflow-scroll='true'> 

     <input type="text" style="border:1px solid black;" ng-model="presearch" ng-keyup="autoKeyUp()"> 
     <h1><b>{{presearch}}</b></h1> 
    </ion-content> 
     </ion-side-menu-content> 
    </ion-side-menus> 
    </body> 
</html> 

app.js

var app = angular.module('StarterApp', ['ionic']); 
app.controller('AppCtrl',['$rootScope','$scope', function($rootScope,$scope){ 
    $scope.autoKeyUp = function() { 
    console.log($scope.presearch); 
    } 
}]); 

http://embed.plnkr.co/fh7WtJCs5S7R7iNXyfXM/

回答

0

的你的plunkr例子中的問題是,你永遠不會包含你的控制器。例如,您可以用

<body ng-app="starter" ng-controller="LoginCtrl" animation="slide-left-right-ios7" style="padding:20px;"> 

或更好,這樣做是爲了使用$stateProvider

.config(function($stateProvider, $urlRouterProvider) { 
    $urlRouterProvider.otherwise('/login'); 

    $stateProvider 
     .state('login', { 
      url: '/login', 
      templateUrl: 'login.html', 
      controller: 'LoginCtrl', 
     }); 
}); 

編輯

的問題是,ion-content有他自己的$scope,因此2路DATA-綁定不起作用了。見http://ionicframework.com/docs/api/directive/ionContent/。如果您的控制器添加到ion-content元素,它的工作原理:

<ion-content ng-controller="AppCtrl"> 
+0

這不是我的代碼。 –

+0

對不起,我不知道爲什麼會打開另一個頁面。我編輯了我的帖子。 –

0

由於2路數據綁定基於由refernce更新對象wrks,使用對象,而不是原始值的分配的NG-模型。

<ion-content overflow-scroll='true'> 
    <input type="text" style="border:1px solid black;" ng-model="model.presearch" ng-keyup="autoKeyUp()"> 
    <h1><b>{{model.presearch}}</b></h1> 
</ion-content> 

控制器

$scope.autoKeyUp = function() { 
    console.log($scope.model.presearch); 
}