açısal bir kontrolör tanımı aslında bir sınıf değil, bir nesne olduğunu. HTML'de denetleyiciye başvurulan her yer, derleme aşamasında, tanımlanmış denetleyici sınıfını kullanarak yeni bir denetleyici nesnesi oluşturur. Yani, aynı denetleyici sınıfı ile birden fazla kapsamı başvuruyor olabilirsiniz.
Her zaman denetleyici ile ilişkili bir kapsam vardır ve tüm değişkenler bu kapsamla ilişkilendirilir. Sen sen denetleyici dışından kapsamını erişmeye çalışan neden bize bildirin durumunda da iyi olurdu
var scope = angular.element("#myelement").scope();
//use the scope....
gibi bir şey arayarak belirli bir html elemanı kapsamını erişebilir.
GÜNCELLEME
Bu önyükleme sekme bileşeni ... Sen
<tab>
<pane title="tab1"><pane>
<pane title="tab2"></pane>
</tabs>
Bu http://angularjs.org/ ana sayfada bulunan aynı biridir olarak kullanabilirsiniz edilir .. ben sadece güncelledik Bir sekme değiştiğinde olayları yayınlamak için.
var directives = angular.module('myApp.directives', []);
directives.directive('tabs', function() {
return {
restrict:'E',
transclude:true,
scope:{},
controller:function ($scope, $element, $rootScope) {
var panes = $scope.panes = [];
$scope.select = function (pane) {
angular.forEach(panes, function (pane) {
pane.selected = false;
});
pane.selected = true;
$rootScope.$broadcast("tabChanged", pane.title);
}
this.addPane = function (pane) {
if (panes.length == 0) $scope.select(pane);
panes.push(pane);
}
},
template:'<div class="tabbable">' +
'<ul class="nav nav-tabs">' +
'<li ng-repeat="pane in panes" ng-class="{active:pane.selected}">' +
'<a href="" ng-click="select(pane)">{{pane.title}}</a>' +
'</li>' +
'</ul>' +
'<div class="tab-content" ng-transclude></div>' +
'</div>',
replace:true
};
});
directives.directive('pane', function() {
return {
require:'^tabs',
restrict:'E',
transclude:true,
scope:{ title:'bind' },
link:function (scope, element, attrs, tabsCtrl) {
tabsCtrl.addPane(scope);
},
template:'<div class="tab-pane" ng-class="{active: selected}" ng-transclude>' +
'</div>',
replace:true
};
});
Bu sekme değişiklikleri ..
Temelde ben angularjs ve ön yükleme alanı kullanmak istediğinizde bir olay gönderir aynı anda (sekme JavaScript bileşeni). REST mimarisini uyguladım ve kullanıcılar farklı bir sekme panosuna geçtiğinde kaynakları almak istiyorum. Bu yüzden sekme değişiklik olayına bağlanmam ve buralı web hizmetinden almak için denetleyicinin işlevini çağırmam gerekiyor. Ayrıca, dinlendirici web hizmetinden alınırken bir kullanıcı kimliği belirtmem gerekiyor. Kullanıcı kimliğini ilk başta sabitledim ancak denetleyicide veya js dosyasındaki kapsamı zorlamak istemiyorum. – Chris
Bu yüzden, kapsam ve çağrı denetleyicisinin işlevine (kullanıcı tarafından gizlenen web hizmetinden veri al) dışarıdan değişken (kullanıcı Kimliği) ayarlamam gerekiyor. Bunun nasıl başarılabileceğine dair bir fikrin var mı? Teşekkürler! – Chris
Mümkünse, tüm yönergelerin özel yönergeyi desteklemediği gibi özel yönergeyi kullanmaktan kaçınmak istiyorum. Ama fikrin için teşekkürler. – Chris