この質問は以前に尋ねられたと確信していますが、検索するのに苦労しています。モジュールからのAngularJSのスコープ付き機能
ページャー、トグル、フィルターなどの定型コードがたくさんあるアプリがあります。これらのことを過度のような指示にすることは望ましくありません。現在、私はHTMLをなくすためにng-includeを使用していますが、私のディレクティブではまだ定型的なスコープ付きの関数がたくさんあります。
私が知りたいことは、これらの機能をモジュールからロードしてスコープに自動的にバインドできるかどうかです。
今私は、この持っている:私はもっとこのような何かをしたい
.directive('somethingAwesome', ['$http', '$timeout', function($http, $timeout) {
return {
replace: true,
templateUrl: '/assets/awesome_sauce.html',
transclude: false,
scope: true,
controller: ['$scope', '$http', '$timeout', function($scope, $http, $timeout) {
// Public Functions List
$scope.next = next;
$scope.prev = prev;
$scope.filter = filter;
// ...
// Public Functions Definitions
function next() {
// Do something
}
function prev() {
// Do something
}
function filter() {
// Do something
}
// ...
}]
}
}])
を:
.directive('somethingAwesome', ['$http', '$timeout', function($http, $timeout) {
return {
replace: true,
templateUrl: '/assets/awesome_sauce.html',
transclude: false,
scope: true,
controller: ['$scope', '$http', '$timeout', function($scope, $http, $timeout) {
include boilerplate;
}]
}
}])
(function boilerplate() {
// Public Functions List
$scope.next = next;
$scope.prev = prev;
$scope.filter = filter;
// ...
// Public Functions Definitions
function next() {
// Do something
}
function prev() {
// Do something
}
function filter() {
// Do something
}
// ...
return something;
})()
ここで重要なのは、単にboilerplate
含むことは何でもの範囲にすべての機能を結合することです指令またはコントローラに含まれています。私はまだboilerplate
から各機能をスコープに手作業でバインドしなければならない場合でも、このようなものは多くのコードを書き換えてしまうので、まだ有用です。
これは可能ですか?あれば、どうですか?
おそらくこれは役に立ちます:http://stackoverflow.com/questions/18378520/angularjs-pass-function-to- directive –