2015-02-08 4 views
0

У меня есть один BaseController с общими функциями, которые наследуют все мои другие контроллеры.Как я могу передать область в шаблоне в угловом js

Контроллер как этот

function BaseController() { 

    this.defaultFilters = {}; 

    this.doStuff = function ($scope) { 
     $scope.myobj.value = 1; 
     this.otherfunction(); 
    }; 

I унаследовать, что в моем контроллере, как этого

BaseController.call($scope);

Теперь в моих функционируют вещи мне нужно передать $ рамки, потому что myobj только видимая там.

Теперь я хочу знать, что, как я могу передать, что в моем шаблоне, потому что я хочу вызвать эту функцию, когда некоторые нажмите на некоторые кнопки

ng-click="doStuff(scope)"

ответ

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

спасибо за это. Предположим, что если я использую службу, то что делать в случае, когда мне нужно изменить переменную $ scope в этой функции. я не могу это сделать на службе – user3214546

+0

Зачем вам это делать, если вы храните свои данные в самом сервисе. Смотрите, Мое предложение состоит в том, чтобы переместить ваши связанные данные, а также общий код в сервисе (услугах), чтобы они стали глобально доступными, а их изменение в одном месте меняет их везде. –

+0

спасибо за это, На самом деле я всегда был confusued как поместить все вещи в сервисы, но я не нашел убедительного примера для лучших практик, из Интернета, где кто-то показал, как делать все в сервисах. Знаете ли вы какую-либо онлайн-ссылку, чтобы я мог видеть, как люди вкладывают вещи в услуги. – user3214546

Смежные вопросы