我試圖通過AngularJS變量作爲參數值在onclick()中調用javascript函數。任何人都可以指導我如何做到這一點?如何通過角度js變量內部的onclick函數作爲參數
我的代碼:
<div onclick="deleteArrival({{filterList.id}})" class="table-icon deleteIcon">{{filterList.id}}</div>
我試圖通過AngularJS變量作爲參數值在onclick()中調用javascript函數。任何人都可以指導我如何做到這一點?如何通過角度js變量內部的onclick函數作爲參數
我的代碼:
<div onclick="deleteArrival({{filterList.id}})" class="table-icon deleteIcon">{{filterList.id}}</div>
您應該使用NG點擊,沒有理由使用的onclick的角度爲您提供使用此功能
<div ng-click="deleteArrival(filterList.id)"
class="table-icon deleteIcon">{{filterList.id}}</div>
然後,您應該將您的功能移動到您的AngularJS控制器,並將其綁定到範圍
$scope.deleteArrival = function(filterListId) { ... };
如果你確實需要使用的onclick調用外部功能,您可以將功能改成像這樣在你的範圍內,仍採用NG-點擊上面的屬性:
$scope.deleteArrival = function(filterListId) { window.deleteArrival(filterListId); };
但是我看不出理由不將其移動到你的範圍
你可以很容易地解決使用ng-click
你的問題,但你應該在你的範圍deleteArrival
方法。
標記
<div ng-click="deleteArrival(filterList.id)" class="table-icon deleteIcon">
{{filterList.id}}
</div>
你有效的點..但他沒有使用'ng-click' –
是的,我建議他使用'ng-click',因爲他正在使用angularJS。 –
我需要使用onclick('hi');喜歡這個。但數據已從ng-repeat中獲得,我理解你的想法。但我需要這樣的..我想調用javascript function.so,我要求它bro –
試試這個沒有花括號 deleteArrival(filterList.id)
它拋出未定義錯誤bro –
上面的事情是很容易可以利用ng-click
指令,並具有內部控制器範圍內該功能,只有一點是,你需要指定你的java-script功能n引用控制器範圍變量。無需再次在您的範圍內重寫該函數。通過函數的引用將會訣竅。
標記
<div ng-click="deleteArrival(filterList.id)" class="table-icon deleteIcon">
{{filterList.id}}
</div>
控制器
//assign javascript method reference in controller
$scope.deleteArrival = deleteArrival;
不允許您創建了事件處理程序綁定屬性,如的onclick,onload事件,的onsubmit等,angularjs因爲, 綁定這些屬性並沒有實際價值,並且這樣做只會將您的應用程序暴露給XSS等安全漏洞。由於這些原因,在angularjs中不支持綁定到事件處理程序屬性(以on和formaction屬性開頭的所有屬性)。
對於你的情況,
內ng-repeat
,使用ng-click
發送值給你的函數並聲明功能控制器。
See here for documentation of ng-click
希望這有助於!
有實用價值,至少對於我的情況。的onclick = 「legacyOrGlobalMethod({{product.id}})」 –
我不會第二次猜測你不使用ng-click的原因,因爲其他貢獻者已經指出你真的'應該'。但是,如果你真的想要/需要,通過使用'this'和數據屬性,我的建議。
<div data-filterListId="{{filterList.id}}" onclick="deleteArrival(this)" class="table-icon deleteIcon">{{filterList.id}}</div>
function deleteArrival(arrivalElem) {
alert('myId=' + arrivalElem.getAttribute("data-filterListId"));
}
我有,我不能使用,由於窗口結合NG點擊的情況下。沒有得到直接的答案,但下面的確爲我工作。我知道這不是一個好的解決方案,但在我的情況下可行。
angular.element(本).scope()。ctrlName.variable
您可以嘗試使用自己的類結構。所以點擊將是如下:
的onclick = 「測試(angular.element(本).scope()ctrlName.ObjName.variable)」
如果你仍然想使用onclick,這是工作對我而言,我希望它也適合你。
<div id="{{filterList.id}}" onclick="deleteArrival(this.id)" class="table-icon deleteIcon">{{filterList.id}}</div>
有什麼特別的理由說明你沒有使用'onclick'嗎?使用'ng-click'應該沒問題 –