簡體   English   中英

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

現在在我的東西函數中,我需要傳遞$ 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()"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM