$ scope未在Controller中定义

时间:2014-03-27 08:53:36

标签: javascript angularjs

我有世界上最简单的控制器,我希望访问$ scope但它是“未定义”而我不能,因为我的生活解决了为什么,但是所有的功能都被称为corectly,DataService等工作完美,只是我无法访问$ scope?!

控制器代码在

之下
app = angular.module("windscreens", []);

app.controller('DamageCtrl', function($scope, DataService) {
  $scope.setDamageLocation = function(location) {
    DataService.getDamage().setLocation(location);
  };
  $scope.isLocation = function(requiredLocation) {
    return DataService.getDamage().getLocation() === requiredLocation;
  };
  $scope.progress = function() {
  };
}); 

2 个答案:

答案 0 :(得分:0)

要从HTML模板访问作用域上的属性,您只需要使用属性名称,不需要用它来编写$ scope。

示例:

<button ng-click="progress()"></button>

在您的javascript中,您只能访问控制器及其功能中的$ scope。如果您调用外部资源,例如:DataService模块,除非您明确地将其作为参数传递,否则它将无法访问$ scope。

答案 1 :(得分:0)

我设法使用替代语法使其工作。如下所述,仍然不确定为什么它不起作用但是哼哼

app.controller('DamageCtrl', ['$scope', 'DataService',
  function($scope, DataService) {
    $scope.setDamageLocation = function(location) {
      DataService.getDamage().setLocation(location);
    };

    $scope.isLocation = function(requiredLocation) {
      return DataService.getDamage().getLocation() === requiredLocation;
    };

    $scope.progress = function() {
      console.log($scope);
    };
  }
]);