[英]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.