簡體   English   中英

通過angular中的指令訪問手表內部的變量

[英]Access a variable inside watch by a directive in angular

我是新手,對手表有些麻煩。 我正在看控制器內的變量。 變量的值更改后,我想將此更改后的值發送到指令。

這是監視功能:

$scope.$watch("comboDetail", function(newValue, oldValue) {
  $scope.overlayProductCard = $scope.comboDetail.collectionCd;
  console.log("$scope.overlayProductCardWithinWatch", $scope.overlayProductCard);
}

我的指令:(為了閱讀而剪切)

return {
scope: {
      productCard: '='
    },
    restrict: 'E',
    templateUrl: appVersionFactory.getViewBaseUrl() + '/assets/partials/tv/tv-overlay-link.html',
    replace: true,
    link: function($scope, iElm, iAttrs, controller) {
      console.log("$scope.productCard", $scope.productCard);

  };

但是, $scope.productCard返回未定義給我,而$scope.overlayProductCardWithinWatch返回正確的數據。

如何在指令中接收此數據?

可以說我有指令像<test param="controllerParam"></test>與模板<div>{{param}}</div>如果我改變controllerParam控制器中,我不需要看/別的東西-指令將獲得新的價值。 如果我希望每次更改時都將新值記錄在指令中-那么我需要監視指令。

鏈接功能每個元素執行一次,因此您只記錄一次變量的值。 (最初的)

嘗試這個 :

link: function($scope, iElm, iAttrs, controller) {
  scope.$watch('productCard', function (newValue) {
    console.log("$scope.productCard", newValue);
  })
};

並在此之前從HTML中的element標簽傳遞productCard ,例如:
data-product-card="overlayProductCard"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM