1

我遇到了一些非常简单的问题,比如将基本服务注入控制器,尽管阅读了文档和其他 SO 问题,但我真的没有看到我正在犯的错误。

这是我的简化代码:

angular.module ('travelApp', ['ui.bootstrap', 'ngRoute'])

//控制器

.controller('searchController', ['$scope','myParams', function ($scope,ngRoute,myParams){

   $scope.place = myParams.place;
   $scope.$watch('place', function(){
      myParams.place = $scope.place;
    });

    $scope.bind = function(){
        console.log(myParams.getPlace);
    };
}])

//服务

.service('myParams', function(){
    this.place = 'start';
});

//我的HTML

<div class="container" ng-app="travelApp">
    <div class="jumbotron" id="searchPage" ng-controller="place">
    <div>
        <h3>Start Here</h3>
        <input type="text" class="form-control" id="searchBar" ng-model="place">
        <a type="button" class="btn btn-default" ng-click="bind()">bind data</a>
    </div>
</div>

在过去的几个小时里,我尝试了很多事情,但不断得到

“TypeError:无法设置未定义的属性‘地点’”

似乎该服务在控制器内部不可用,我不知道它是否与路由有关,但我对此表示怀疑。

有人可以指出我正确的方向吗?

这是一个Plunker

4

1 回答 1

2

如果您使用数组语法,您的依赖项必须匹配。ngRoute从控制器的参数中删除。

.controller('searchController', ['$scope','myParams', function ($scope, myParams){
于 2015-10-03T01:30:38.173 回答