经典场景:我想显示一个列表,但是当它为空时我想显示"无数据".
事实上,做一些我希望简单的事情有点复杂,这让我觉得我可能做错了.
这是我目前的解决方案.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdn.jsdelivr.net/vue/1.0.16/vue.js"></script>
<div id="element">
<div v-if="empty">No item in inventory</div>
<div v-for="(index, item) in inventory">
{{item.key}}<button onclick="remove('{{index}}')">remove</button>
</div>
</div>
<script type="text/javascript">
"use strict";
var vm;
$(function() {
vm = new Vue({
el: '#element',
data: {
inventory: {"id1" : {"key" : "val1"}, "id2" : {"key" : "val2"}},
empty: false
},
watch: {
inventory: function() {
vm.empty = $.isEmptyObject(vm.inventory);
}
}
});
});
function remove(key) {
Vue.delete(vm.inventory, key);
}
</script>Run Code Online (Sandbox Code Playgroud)
有没有比这更好的解决方案?
我们如何在std :: tuple中提取/打印单个值?
以下是名为test.cc的文件中的示例程序.
#include <tuple>
#include <iostream>
using namespace std;
int main() {
auto t = make_tuple(111, 222);
cout << std::get<0>(t) << endl
<< std::get<1>(t) << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译它
g++ --std=c++11 -g test.cc
Run Code Online (Sandbox Code Playgroud)
在gdb中运行它
gdb --args ./a.out
...
(gdb) start
Temporary breakpoint 1 at 0x400836: file test.cc, line 7.
Starting program: /home/fmlheureux/a.out
Temporary breakpoint 1, main () at test.cc:7
7 auto t = make_tuple(111, 222);
(gdb) n
9 << std::get<1>(t) << endl;
(gdb) p t
$1 = …Run Code Online (Sandbox Code Playgroud)