[英]Why does Firebug allow global variables declared in its console to be deleted?
[英]Passing object to directive does not allow global variables
我將指令col
定義為col: '='
的變量col
傳遞給指令col: '='
。 該對象包含一些數組,並且在這些數組中有一個函數。 該函數從我的控制器引用了一個變量,它看起來像這樣:
function (params) {
return $scope.function(params);
}
此col
變量將傳遞給big指令包含的子指令,然后該子指令將其執行。
它從一個名為VM {random number here}的文件拋出錯誤,該文件說$scope
未定義。
如何使其從我的控制器而不是虛擬JS文件運行?
如果您需要通過功能,則必須為該作業創建服務/工廠。我認為要在指令或組件中使用。
不要忘記服務是單例的,工廠實施標准的工廠模式。
如果全局意味着窗口變量或函數不需要僅注入this.windows。 ....做這份工作。
問候。
在為控制器聲明的html模板中調用您的指令
並將數據從指令直接傳遞給控制器中使用的函數
這樣您就可以在控制器的同一渲染模板上訪問指令數據
指示
.directive('myDir', function () {
return {
'restrict': 'AE',
'templateUrl': '/directive_page.html',
'scope': {
'col': '=',
'onSelect': '='
}
}
'link': function () {
// use onselect method here to use values
}
}
控制者
.controller('myController', function () {
$scope.setValueFromDirective = function (value) {
// write your logic to fetch data
};
});
的HTML
<div data-my-dir="" col="//pass value you want in directive" data-on-select='setValueFromDirective(value)'>
</div>
我希望這能幫到您
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.