Angularjs 使用ES6和x27测试角度1.x组件;t使用$componentController加载绑定
我有以下代码 我的组件Angularjs 使用ES6和x27测试角度1.x组件;t使用$componentController加载绑定,angularjs,testing,ecmascript-6,components,Angularjs,Testing,Ecmascript 6,Components,我有以下代码 我的组件 class PaginationController{ page = 1 constructor() { console.log(this) // PaginationController {page: 1} } } export const PaginationComponent = { templateUrl: '/components/app/views/pagination.html', controller: P
class PaginationController{
page = 1
constructor() {
console.log(this) // PaginationController {page: 1}
}
}
export const PaginationComponent = {
templateUrl: '/components/app/views/pagination.html',
controller: PaginationController,
controllerAs: '$ctrl',
bindings: {
data: '=',
size: '<',
}
}
import { PaginationComponent } from '../src/components/app/pagination'
describe("Pagination Controller", () => {
let controller
beforeEach(() => {
angular
.module("Test", [])
.component('pagination', PaginationComponent)
})
beforeEach(window.module("Test"))
beforeEach(inject(($componentController) => {
controller = $componentController('pagination', null, {
data: [],
size: 10
})
}))
it("change page", () => {
console.log(controller)
})
})
我希望控制器中的构造函数上的console.log打印PaginationController{page:1,data:[],size:10}
,但是我得到PaginationController{page:1}
,所以我假设绑定没有工作
任何人都可以帮助我理解为什么?最后,这项工作执行
.constructor()
的方式如下:
beforeEach(inject(($componentController) => {
controller = $componentController('pagination', null, {
data: [],
size: 10
})
controller.constructor()
}))
这里的问题是.constructor
方法被调用了两次:
第一次是执行
$componentController
时,此时constructor方法中的绑定不可用,但如果执行controller.constructor()
则绑定可用。所以,我还是不明白为什么 最后,这项工作执行.constructor()
的方式如下:
beforeEach(inject(($componentController) => {
controller = $componentController('pagination', null, {
data: [],
size: 10
})
controller.constructor()
}))
这里的问题是.constructor
方法被调用了两次:
第一次是执行$componentController
时,此时constructor方法中的绑定不可用,但如果执行controller.constructor()
则绑定可用。所以,我还是不明白为什么