我如何在 angular js 中传递模板中的范围
How can i pass scope in template in angular js
我有一个 BaseController
具有我所有其他控制器继承的通用功能。
控制器是这样的
function BaseController () {
this.defaultFilters = {};
this.doStuff = function ($scope) {
$scope.myobj.value = 1;
this.otherfunction();
};
我像这样在我的控制器中继承了它
BaseController.call($scope);
现在在我的 do stuff 函数中我需要传递 $scope 因为 myobj 只在那里可见。
现在我想知道如何在我的模板中传递它,因为我想在点击某个按钮时调用该函数
ng-click="doStuff(scope)"
您与控制器范围相关联的所有内容,因此您只需将您的范围与某个变量相关联,我想这就可以完成工作。
像这样:
app.controller(function($scope) {
$scope.scope = $scope;
});
但是,如果您采用一些标准方法,我建议将这些常用功能移动到某些服务中,将此服务注入每个控制器并在视图中使用它。
像这样:
app.service("constantService", function() {
this.data = {}; // This will represent your common data.
this.commonFunction = function() {
};
});
app.controller(function() {
$scope.constantService = constantService;
// You can now use $scope.constantService.data as your reference for data, and then can copy it to some local $scope variable whenever required.
});
ng-click="constantService.commonFunction()"
我有一个 BaseController
具有我所有其他控制器继承的通用功能。
控制器是这样的
function BaseController () {
this.defaultFilters = {};
this.doStuff = function ($scope) {
$scope.myobj.value = 1;
this.otherfunction();
};
我像这样在我的控制器中继承了它
BaseController.call($scope);
现在在我的 do stuff 函数中我需要传递 $scope 因为 myobj 只在那里可见。
现在我想知道如何在我的模板中传递它,因为我想在点击某个按钮时调用该函数
ng-click="doStuff(scope)"
您与控制器范围相关联的所有内容,因此您只需将您的范围与某个变量相关联,我想这就可以完成工作。
像这样:
app.controller(function($scope) {
$scope.scope = $scope;
});
但是,如果您采用一些标准方法,我建议将这些常用功能移动到某些服务中,将此服务注入每个控制器并在视图中使用它。
像这样:
app.service("constantService", function() {
this.data = {}; // This will represent your common data.
this.commonFunction = function() {
};
});
app.controller(function() {
$scope.constantService = constantService;
// You can now use $scope.constantService.data as your reference for data, and then can copy it to some local $scope variable whenever required.
});
ng-click="constantService.commonFunction()"