我正在为我的一个项目挑选Angular,并且无法正确地迈出第一步。
具体来说,我可以通过组件和相应的模板获取要显示的项目列表,但我无法弄清楚如何使用组件模型触发ng-click事件。关于这方面的许多类似问题已在SO上得到了回答,但我已经遵循了许多改进和建议而没有取得进展,需要一些建议。
file: customerList.js
function CustomerListController($scope, $element, $attrs, $http) {
this.customerList = [
{ name: 'Arya' },
{ name: 'No One' },
];
this.yell = function(customer) {
console.log("customer customer, we've got a click");
};
}
angular.module('myApp').component('customerList', {
templateUrl: 'customerList.html',
controller: CustomerListController,
});
及其模板:
file: customerList.html
<div class="customer"
ng-repeat="customer in $ctrl.customerList"
customer="customer"
ng-click="$ctrl.yell(customer);">
Welcome home, {{customer.name}}!
</div>
即使我设置了ng-click="console.log('click detected');"
,也没有控制台日志。
我相信这是足以诊断的信息,但如果您需要更多信息,请告诉我。
谢谢!
答案 0 :(得分:2)
首先,console.log
不会直接在角度表达式中起作用。您无法直接在表达式中使用窗口函数。
其次,我建议使用controllerAs
语法,因为它是一种较新的学校做事方式。尝试使用控制器访问控制器作为ng-click()表达式中的别名。