2017-03-15 13 views
0

親スコープから関数にアクセスしようとしていますが、これについてのかなりの記事を見ても、間違っていることを見つけることができません。まず第一に、私は、このようなMS-カードディレクティブを呼んでいるページがあります。テンプレート内の親スコープからの関数へのアクセス

<div ng-if="vm.isPhone ? ($index < 2) : ($index < 5)" flex="50" flex-xs="50" flex-sm="33" flex-md="25" flex-gt-md="20" ng-repeat="item in vm.OffersData[val.key]"> 
    <ms-card template="'app/main/offers/offer-card-template/offerCardTemplate.html'" ng-model="item" view-model="vm"></ms-card> 
</div> 

を、心の中で私はうまくやっていると、それは私にあるすべてのものを示しているを通じて送信していた項目をキープそこで。

(function() { 
    'use strict'; 
    angular.module('app.core').directive('msCard', msCardDirective); 
    /** @ngInject */ 
    function msCardDirective() { 
     return { 
      restrict: 'E' 
      , scope: { 
       templatePath: '=template' 
       , card: '=ngModel' 
       , vm: '=viewModel' 
      } 
      , template: '<div class="ms-card-content-wrapper" ng-include="templatePath" onload="cardTemplateLoaded()"></div>' 
      , compile: function (tElement) { 
       // Add class 
       tElement.addClass('ms-card'); 
       return function postLink(scope, iElement) { 
        // Methods 
        scope.cardTemplateLoaded = cardTemplateLoaded; 
        ////////// 
        /** 
        * Emit cardTemplateLoaded event 
        */ 
        function cardTemplateLoaded() { 
         scope.$emit('msCard::cardTemplateLoaded', iElement); 
        } 
       }; 
      } 
     }; 
    } 
})(); 

そして最後に、私はこのようなカードで関数を呼び出すためにしようとしている:

<div class="media" ng-click="vm.showDetailedOffer(card.shopkey, card.key)"> <img class="image" ng-src="{{card.img}}" fallback-src onload-src> </div> 

すべてのヘルプは非常に

答えて

0

評価されて今は、このディレクティブは次のようになります私が作っていた間違いは、親のコントローラにありました(上記には示されていません)。私は関数showDetailedOfferを以下のように定義しました:$ scope.showDetailedOffer = function。しかし、それはvm.showDetailedOfferだったはずです。

関連する問題