无法在$ scope上获得ng-model

时间:2014-05-06 15:05:30

标签: angularjs angularjs-scope

我正在使用AngularJS尝试新事物,但我无法获得简单的输入值。

HTML:

<label class="item-input-wrapper">
    <i class="icon ion-ios7-search placeholder-icon"></i>
    <input type="search" placeholder="Search" ng-change="search()" ng-model="searchText" ng-init="searchText='demo'">
</label>

JS:

.controller('MoviesCtrl', function ($scope, $stateParams, lubTmdbApi) {
    console.log("SearchText:"+$scope.searchText)
    $scope.search = function() {
        console.log("SearchText:"+$scope.searchText)
    };
})

总是得到:

SearchText:undefined

更新:这是我的州

      .state('app.movies', {
            url: "/movies",
            views: {
                'menuContent': {
                    templateUrl: "templates/movies.html",
                    controller: "MoviesCtrl"
                }
            }
        })

1 个答案:

答案 0 :(得分:2)

我认为你的问题在于ng-init指令。我删除它并在控制器上添加了一行,现在一切都适合我。我建议将ng-model值包装在一个对象中(我听说这是为了继承)。

HTML:

  <div ng-controller="MoviesCtrl">
    <label class="item-input-wrapper">
        <i class="icon ion-ios7-search placeholder-icon"></i>
        <input type="search" placeholder="Search" ng-change="search()" ng-model="input.searchText" />
    </label>
  </div>

JS:

.controller('MoviesCtrl', function($scope) {
    $scope.input = {
        searchText: 'demo'
    };

    $scope.search = function() {
        console.log("SearchText:" + $scope.input.searchText)
    };
});

Here is a working CodePen