AngularJS - 无法在控制器方法

时间:2015-11-07 03:37:32

标签: angularjs angularjs-directive angularjs-service angularjs-controller

我无法访问控制器方法中的服务。

AppController.$inject = ['$scope', 'appService'];
function AppController($scope, appService) {
    $scope.name = "World";

    $scope.clicked = function() {
      //am not able to access appService here
      /*
      appService.setName("john");
      $scope.name = getName();
      */
      $scope.name = "button clicked";
    }
}

http://plnkr.co/edit/UgHmtCbkxeyluTPJOG4T?p=info

创建控制器时可以访问该服务,但在控制器中调用clicked()时则不可访问该服务。如果我在这里遗漏了什么,请告诉我。

我正在尝试创建一个指令(类似于语言环境选择下拉列表)。我希望该指令拥有其控制器和自己的服务。我的想法是,当用户更改下拉列表并在服务中设置语言时,控制器将处理languageChange()方法,以便我可以在应用程序的任何其他部分注入此服务。

当我在控制器方法中访问服务时出现问题(languageChange())

我认为如果我得到正确的基本示例,我将能够继续我的语言变更指令。

1 个答案:

答案 0 :(得分:1)

您忘了将appService添加到getName()

使用此:

$sql = "UPDATE resorder_tb SET res_complete = 1 WHERE res_id =".$comp_id." "; 
mysql_qyery($sql);

而不是:

  appService.setName("john");
  $scope.name = appService.getName();

正在运行示例:http://plnkr.co/edit/Hh9g7H9PI9JhNdbAhqdT?p=preview