我如何在 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()"