ฉันมีปรากฏการณ์ที่แปลกประหลาดมากกับคำสั่งและขอบเขตที่แยกจากกัน โดยที่คุณลักษณะในขอบเขตจะทำงานหรือไม่ทำงาน ขึ้นอยู่กับการตั้งชื่อแอตทริบิวต์ ถ้าฉันใช้
{check:'@check'}
มันใช้งานได้ดีและเป็นไปตามที่คาดไว้ อย่างไรก็ตามถ้าฉันใช้:
{checkN:'@checkN'}
ฟังก์ชันที่กำหนดไว้ไม่เคยได้รับมอบหมาย ตัวอย่างจะมีลักษณะดังนี้:
HTML:
<item ng-repeat="list_item in model.list" model="list_item" checkN="checkName()" check="checkName()" position="$index"></item>'
จาวาสคริปต์
app.directive('item', function(){
return {
restrict: 'E',
replace : false,
scope:{
$index: '=position',
check: '&check',
checkN: '&checkN',
model:'='
},
template: '',
link: function(scope, element, attrs){
console.log(scope.check())
console.log(scope.checkN())
}
}
});
คอนโซลจะให้สิ่งต่อไปนี้แก่ฉัน:
The checkName function has been called [which is the return string of the function]
undefined
เป็นไปได้จริง ๆ ไหมว่ามันขึ้นอยู่กับการใช้ตัวพิมพ์ใหญ่? นี่จะเป็นพฤติกรรมที่ "ไม่คาดคิด" อย่างมาก
ขอบคุณสำหรับความช่วยเหลือของคุณ
สชากี
ngBind
คำสั่งสามารถเรียกใช้ได้โดยการแปลชื่อกรณีอูฐเป็นกรณีงูด้วยอักขระพิเศษเหล่านี้:
,-
หรือ_
นอกจากนี้ คำสั่งยังสามารถเติมคำนำหน้าด้วยx-
หรือdata-
เพื่อให้เป็นไปตามข้อกำหนดของเครื่องมือตรวจสอบ HTML -- หน้าคำสั่ง การเรียกใช้คำสั่งจาก HTML - person Mark Rajcok   schedule 27.03.2013