如何在角度js中传递模板中的范围

时间:2015-02-08 23:52:36

标签: javascript angularjs scope

我有一个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)"

1 个答案:

答案 0 :(得分:1)

您与控制器范围相关联的所有内容,因此您只需将范围与某个变量关联起来,我想这样就可以完成任务。

这样的事情:

    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()"