我对如何更改组件内的属性感到有点困惑,假设我有以下组件:
{
props: {
visible: {
type: Boolean,
default: true
}
},
methods: {
hide() {
this.visible = false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
虽然它有效,但会发出以下警告:
避免直接改变道具,因为只要父组件重新渲染,该值就会被覆盖.而是根据prop的值使用数据或计算属性.Prop变异:"可见"(在组件中找到)
现在我想知道处理这个问题的最佳方法是什么,显然visible在DOM中创建组件时传入了属性:<Foo :visible="false"></Foo>
我想从一台Linux机器发送一个文件,假设"192.168.2.25"到其他Linux机器,这是一台服务器"192.168.2.110"
我怎么能通过使用Telnet命令来做到这一点?
我的web/templates文件夹中有两个模板文件夹:
> ls web/templates
personal_info user
Run Code Online (Sandbox Code Playgroud)
我想要的是user在另一个视图中从文件夹渲染一些模板personal_info.所以我在路径上有一个文件:web/templates/personal_info/index.html.eex,我有以下内容:
<%= render "user/xyz.html" %>
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误:
[error] #PID<0.821.0> running MyApp.Endpoint terminated
Server: localhost:4000 (http)
Request: GET /
** (exit) an exception was raised:
** (Phoenix.Template.UndefinedError) Could not render "user/xyz.html" for MyApp.PersonalInfoView, please define a matching clause for render/1 or define a template at "web/templates/personal_info". The following templates were compiled:
* index.html
Run Code Online (Sandbox Code Playgroud)
请告诉我如何渲染在其他文件夹中定义的模板,我尝试了几个排列,但没有一个工作.
我正在使用vuejs 2.0创建一个webapp .我使用以下代码创建了简单的选择输入:
<select v-model="age">
<option value="" disabled selected hidden>Select Age</option>
<option value="1"> 1 Year</option>
<option value="11"> 11 Year</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我在data我的Vue组件中有这个:
data () {
return {
age: "",
}
},
watch: {
age: function (newAge) {
console.log("log here")
}
Run Code Online (Sandbox Code Playgroud)
但是当我为select添加默认值时,我开始收到此错误:
错误在./~/vue-loader/lib/template-compiler.js?id=data-v-5cf0d7e0!./~/vue-loader/lib/selector.js?type=template&index=0!./src/ components/cde.vue模板语法错误:使用v-model时将忽略内联选定的属性.而是在组件的数据选项中声明初始值.
@ ./src/components/cde.vue 10:23-151
@ ./~/babel-loader!./~/vue-loader/lib/selector.js?type = script&index = 0!./ src/views/abcView.vue @ ./src/views/abcView.vue
@ ./src/router/index.js
@ ./src/app.js
@ ./src/client-entry.js
@多app
我也试图在组件的数据部分给出默认值,但后来什么也没发生.我v-bind也试过,但后来观察者停止了年龄变量的研究.
我有一个vue组件,其中包含click/dblclik的单独事件.单击(de)选择行,dblclick打开编辑表单.
<ul class="data_row"
v-for="(row,index) in gridData"
@dblclick="showEditForm(row,$event)"
@click="rowSelect(row,$event)"
>
Run Code Online (Sandbox Code Playgroud)
这样做,我点击双击就发了3个事件.两次点击事件,最后一次是dblclick.由于点击事件首先触发,是否有一种方法(短暂的推迟点击事件的固定数量的ms),以便在双击时停止点击事件的传播?
在这里小提琴
我创建了一个包含三个元素的组件"my-item":一个下拉列表(由"itemList"填充)和从下拉列表中填充的两个输入框.该组件被认为是一行.
我试图一次添加和删除一行,但我不确定两件事.(1)要添加到行数组中的内容?(2)为什么this.rows.splice(index,1)只删除最后一行?
https://jsbin.com/mugunum/edit?html,output
谢谢
<div id="app">
<my-item v-for="(row, index) in rows"
:itemdata="itemList"
v-on:remove="removeRow(index)">
</my-item>
<div>
<button @click="addRow"> Add Row </button>
</div>
</div>
<template id="item-template">
<div>
<select v-model="selected">
<option v-for="item in itemdata" :value="item">
{{ item.code }}
</option>
</select>
<input type="text" placeholder="Text" v-model="selected.description">
<input type="text" placeholder="value" v-model="selected.unitprice">
<button v-on:click= "remove"> X </button>
</div>
</template>
Vue.component('my-item', {
props: ['itemdata'],
template: '#item-template',
data: function () {
return {
selected: this.itemdata[0]
}
},
methods: {
remove() {
this.$emit('remove');
}
}
}),
new Vue({
el: "#app", …Run Code Online (Sandbox Code Playgroud) 我在凤凰城使用addict:1.0.3,我已经按照README指南在我的应用程序中使用登录.当我打电话登录时,我收到以下错误:
[error] #PID<0.2576.0> running MyApp.Endpoint terminated
Server: localhost:4000 (http)
Request: POST /login
** (exit) an exception was raised:
** (UndefinedFunctionError) undefined function: MyApp.Addict.Controller.init/1 (module MyApp.Addict.Controller is not available)
MyApp.Addict.Controller.init(:login)
(my_app) web/router.ex:1: anonymous fn/1 in MyApp.Router.match/4
(my_app) lib/phoenix/router.ex:255: MyApp.Router.dispatch/2
(my_app) web/router.ex:1: MyApp.Router.do_call/2
(my_app) lib/my_app/endpoint.ex:1: MyApp.Endpoint.phoenix_pipeline/1
(my_app) lib/plug/debugger.ex:90: MyApp.Endpoint."call (overridable 3)"/2
(my_app) lib/phoenix/endpoint/render_errors.ex:34: MyApp.Endpoint.call/2
(plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4
(cowboy) src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4
Run Code Online (Sandbox Code Playgroud) 我创建使用项目vue-cli和补充vuex,并vue-router在里面.我正在尝试为它设置单元测试,但我收到了以下错误.没有Vuex,它曾经工作过.
PhantomJS 2.1.1(Mac OS X 0.0.0)错误
错误:[vuex] vuex需要在此浏览器中使用Promise polyfill.
在webpack:///~/vuex/dist/vuex.js:145:0 < - index.js:9871
以下是相关的包版本:
"babel-core": "^6.0.0",
"babel-eslint": "^7.0.0",
"babel-loader": "^6.0.0",
"vue": "^2.1.0",
"vue-router": "^2.0.3",
"vuex": "^2.0.0",
"vuex-router-sync": "^3.0.0"
"karma": "^1.3.0",
"karma-coverage": "^1.1.1",
"karma-mocha": "^1.2.0",
"karma-phantomjs-launcher": "^1.0.0",
"karma-sinon-chai": "^1.2.0",
"karma-sourcemap-loader": "^0.3.7",
"karma-spec-reporter": "0.0.26",
"karma-webpack": "^1.7.0",
"webpack": "^1.13.2",
"webpack-dev-middleware": "^1.8.3",
"webpack-hot-middleware": "^2.12.2",
"webpack-merge": "^0.14.1"
Run Code Online (Sandbox Code Playgroud)
以下是karma.conf.js:
// This is a karma config file. For more details see
// http://karma-runner.github.io/0.13/config/configuration-file.html
// we are also using it with karma-webpack …Run Code Online (Sandbox Code Playgroud) 我想用一个例子可以更好地解释这一点
我有以下案例类
case class Person(name: String = "no name", surname: String = "no surname")
Run Code Online (Sandbox Code Playgroud)
我想制作一个通用函数来填充它,例如,json消息,可能没有指定所有字段
我知道要使用默认值,简单的答案不是将它们传递给构造函数,但如果我有几个字段可能会或可能不会出现在json中,我应该使用一个巨大的切换句子覆盖每个可能的组合缺少参数.在这种情况下,读完json之后,我应该照顾姓名和姓氏,没有姓名,没有姓,也没有名字和姓氏......(哎呀,我希望自己明白了).
更确切地说,我正在尝试开发一个函数,允许我从followgin json值创建一个人,当缺少某些参数时使用默认值
{ "name": "john", "surname": "doe" }
{ "surname": "doe" }
{ "name": "john" }
{ }
Run Code Online (Sandbox Code Playgroud)
这就是为什么我正在寻找一种更通用的方法来处理这个问题.
(我将展示一些伪代码,以便了解我想要实现的目标)
我在考虑这样的事情:
val p = Person(name= "new person name", surname= Unit)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,姓氏应该获得默认值
或类似的东西
val p = Person( Map( "name" -> "new person name" ) _* )
Run Code Online (Sandbox Code Playgroud)
因此它也采用了surname的默认值
或者也许在构造函数中执行它,如果我检测到空值(或None),我可以分配默认值.
实际上,我试图避免重复默认值的定义.
无论如何,实现这样的事情最常用的方式是什么?
我在凤凰 webapp中遇到错误,我正在开发.这是一个包含少量模型和页面的简单应用程序,其中所有模型创建表单都以多标签形式添加.
我在日志中遇到以下错误,但是在浏览器结束时工作正常.从日志中我也无法理解错误以及如何调试它.
[error] #PID<0.1603.0> running MyApp.Endpoint terminated
Server: localhost:4000 (http)
Request: GET /
** (exit) an exception was raised:
** (Plug.Conn.AlreadySentError) the response was already sent
(plug) lib/plug/conn.ex:428: Plug.Conn.resp/3
(plug) lib/plug/conn.ex:415: Plug.Conn.send_resp/3
(my_app) web/controllers/personal_info_controller.ex:1: MyApp.PersonalInfoController.phoenix_controller_pipeline/2
(my_app) lib/phoenix/router.ex:265: MyApp.Router.dispatch/2
(my_app) web/router.ex:1: MyApp.Router.do_call/2
(my_app) lib/my_app/endpoint.ex:1: MyApp.Endpoint.phoenix_pipeline/1
(my_app) lib/plug/debugger.ex:90: MyApp.Endpoint."call (overridable 3)"/2
(my_app) lib/phoenix/endpoint/render_errors.ex:34: MyApp.Endpoint.call/2
(plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4
(cowboy) src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4
Run Code Online (Sandbox Code Playgroud) vue.js ×5
javascript ×4
elixir ×3
vuejs2 ×2
arrays ×1
constructor ×1
isparta ×1
karma-runner ×1
linux ×1
scala ×1
select ×1
telnet ×1
templates ×1
unit-testing ×1
web ×1