Direktifin denetleyicisinden "&" işlemi aracılığıyla bir denetleyicinin kapsamından bir yönerge geçirilen bir işlevi çağırmaya çalışıyorum. Bununla birlikte, bu yöntemin, Açısal tarafından tanımlanmamış olduğu iddia edilir. Kodumu tekrar tekrar okuduktan, interneti temizledikten ve o süreci tekrarladıktan sonra, burada yardımcı olmaya karar verdim.AngularJS: Bir denetleyicide çağrılması gereken bir yönergelerin yalıtılmış bir kapsamına geçmek?
Denetleyicimin ilgili kısmı. Direktifime ilettiğim yöntemi içerir.
İşte yönergem. OnPost'a davet edemiyorum.
angular.module('myApp.directives', []).directive('compose', ['postalService', function(postalService) {
return {
restrict: 'E',
transclude: false,
replace: true,
scope: {
onPost: "&" //why will it not
},
templateUrl: "partials/components/compose-partial.html",
controller: function($scope, postalService) {
$scope.title = "";
$scope.content = "";
$scope.newPost = function() {
postalService.newPost($scope.title, $scope.content, function(err) {
if(err) console.log(err + ":(");
else {
console.log("Success getting posts.");
//why can I not invoke onPost()??
$scope.onPost();
}
});
};
},
};
}]);
Ve burada sorun benim postalService Servisi olmadığını biliyoruz benim html
<div ng-controller="PostCtrl">
<section class="side-bar panel hide-for-small">
<compose onPost="getPosts()"></compose>
</section>
<!--more, non-relevant html here-->
</div>
ilgili kısmı. Bunun yerine, yönerge hiçbir işlevin iletilmediğini bildirir. Niye ya??
Ah, elbette! Angular'ın belirli bir sebebi var mı (saç izleyicisinin saçlarını çıkarması yanında)? – thebradbain
@thebradbain Bunun için doğru bir cevabım yok, ama W3C'den gelen çoğu standart, küçük harfleri tire ile kullanma eğilimindedir, bu nedenle Açısal adamların bu sözleşmeye sadece takılıp kaldığını söyleyebilirim. Ben de ne deve davasında ne de pascal vakada yazılmış herhangi bir HTML işaretine koşmayı hatırlamıyorum. –
HTML doğası büyük ölçüde duyarsız - on özellik onpost özniteliğine eşdeğerdir. Bu nedenle, JavaScript camelCase ==> HTML yılan çantası bir konvansiyonu makul. – MikeMac