真的把我的头撞在墙上。我记得在 Angular 工作时,TS 接口可用于键入提示参数。
我想对 Vue 中的道具做同样的事情。
有任何想法吗?代码如下,但检查仅针对标准对象进行,因此传入任何对象都是有效的:
import Vue from 'vue';
import Person from './../models/Person';
export default Vue.extend({
name: 'HelloWorld',
props: {
person: {
type: Object as () => Person
},
},
});
Run Code Online (Sandbox Code Playgroud)
界面如下:
export default interface Person {
firstName: string;
lastName: string;
}
Run Code Online (Sandbox Code Playgroud) 如何访问dataVue 测试实例中的属性?
我看到您可以访问props,但没有data等效项。我可以通过使用类似的东西来获取数据属性wrapper.vm.foo,但我觉得还有另一种方法可能更符合测试框架的要求。
应用程序
<script>
export default {
data() {
return {
foo: 'bar'
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
应用规范.js
import { shallowMount } from '@vue/test-utils'
import App from '@/App.vue'
import { expect } from 'chai';
describe("App.vue", () => {
let wrapper;
beforeEach(() => {
// use this to check the state of anything in the view
wrapper = shallowMount(App)
});
it("Module has the expected data attribute", () => {
expect(wrapper.vm.foo).to.equal('bar'); // passes …Run Code Online (Sandbox Code Playgroud) 那么,让表单有效地一遍又一遍地呈现相同表单的最佳方法是什么,并根据实体的属性值有条件地禁用字段?
我有一个发票实体,需要一个用于创建发票的表格,以及在发票流程的各个阶段(生成、发送、支付等)禁用各个字段的相同表格。
我认为最简单的答案是通过 form_row 选项在树枝模板中动态禁用它们,但这肯定会影响表单的服务器端验证,因为它不知道该字段已被禁用?
根据数据库中的值取消字段的最佳方法是什么?
将问题从 更改Dynamically disable a field in the twig template or seperate class for each form?为Symfony4 Forms - How do you conditionally disable a form field?