我有一个带有v模型的输入文本字段,每当有人点击"添加"按钮时,另一个输入文本会添加到DOM,并附加相同的v模型.我想我会得到一个v模型值的数组,但它只获得第一个v模型输入的值:
<div id="app">
<div id="references">
<input v-model="references" type="text">
</div>
<button @click="addReference">Add</button>
</div>
Run Code Online (Sandbox Code Playgroud)
我附加到dom的html是由addReference方法触发的:
addReference: function(e) {
e.preventDefault();
console.log(this.references);
var inputEl = '<input v-model="references" type="text">';
$('#references').append(inputEl);
}
Run Code Online (Sandbox Code Playgroud)
这是Vuejs不能做的事情吗?是否有不同的方法从动态dom元素中收集Vuejs的值?
new Vue({
el: "#app",
data: {
references: "text"
},
methods: {
addReference: function(e) {
e.preventDefault();
console.log(this.references);
var inputEl = '<input v-model="references" type="text">';
$('#references').append(inputEl);
}
}
})Run Code Online (Sandbox Code Playgroud)
input {
display: block;
margin: 1px;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="app">
<div id="references">
<input v-model="references" type="text">
</div>
<button @click="addReference">Add</button>
</div>Run Code Online (Sandbox Code Playgroud)
随着Roslyn的推出,C#获得了安全导航运营商的优势.这对于使用点符号的对象来说非常棒
MyClass myClass = null;
var singleElement = myClass?.ArrayOfStrings[0];
Run Code Online (Sandbox Code Playgroud)
在这个例子中,myClass为null,但安全操作符使我免于异常.
我的问题是,如果你有一个索引对象是否有安全导航运算符的等效实现?需要它的一个例子如下所示:
var myClass2 = new MyClass { ArrayOfStrings = null };
var singleElement2 = myClass2?.ArrayOfStrings[0];
Run Code Online (Sandbox Code Playgroud)
在这个例子中,myClass2不是null,而是ArrayOfStrings属性,因此当我尝试访问它时,它将抛出异常.因为ArrayOfStrings和索引之间没有点符号,所以我无法添加安全的nav操作符.
因为这是一个数组,我可以通过以下方式使用安全导航操作符,但这不适用于其他集合,如Lists和DataRows
var myClass3 = new MyClass { ArrayOfStrings = null };
var singleElement3 = myClass3?.ArrayOfStrings?.GetValue(0);
Run Code Online (Sandbox Code Playgroud) public interface IInterface { }
public class MyClass { }
public static class Program {
public static void Main() {
IInterface myVariable = new MyClass();
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这个代码,因为工作MyClass确实满足IInterface,但我得到一个编译错误:
错误CS0266:无法将类型"MyClass"隐式转换为"IInterface".存在显式转换(您是否错过了演员?)
为什么?
我可以使用哪种解决方法不涉及显式转换?