我的角度组件中有一个onChange
事件绑定,只要我给它一个其他角度控制器的功能,它就可以正常工作。但是,如果我传递普通的js函数,则不会调用任何内容。
这是我的角度模板:
<search-input on-change='$ctrl.updateDetected(value)'></search-input>
这是另一个控制器:
import angular from 'angular';
import htmlTemplate from './mainWindow.html';
import searchInputComponent from './components/searchInput/searchInput';
const moduleName = 'woodstore';
var module = angular.module(moduleName, []);
class MainWindowController {
updateDetected(searchText) {
console.log('In controller: '+searchText);
}
}
module
.component('mainWindow', {
template: htmlTemplate,
controller: MainWindowController
})
.component('searchInput', searchInputComponent);
function updateDetectedFunction(value) {
console.log('In function: '+value);
}
这会在控制台上打印In controller: Text to search for
。如果我将模板更改为
<search-input on-change='updateDetectedFunction(value)'></search-input>
没有任何反应。
如何使用updateDetectedFunction()
进行回叫?
答案 0 :(得分:0)
我不认为可以在模板中调用普通函数,角度html模板总是绑定到作用域,模板中的任何函数在该作用域的上下文中都是eval,我认为只有你可以做的就是调用普通函数范围函数中的函数:
<search-input on-change='$ctrl.updateDetected(value)'></search-input>
class MainWindowController {
updateDetected(searchText) {
updateDetectedFunction(searchText)
}
}