<% flash.each do |key, msg| %>
<% if key == 'notice' %>
<%= content_tag :div, "<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button> #{key}".html_safe, class: 'alert alert-success alert-dismissable' %>
<% elsif key == 'alert' %>
<%= content_tag :div, "<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button> #{msg}".html_safe, class: 'alert alert-danger alert-dismissable' %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
不适合我.
<% if true %>时候.key,它说notice.为什么不工作?
error(undefined method 'id' for false:FalseClass)引用了这一行:
if current_user && current_user.admin? || current_user.id == id.to_i
Run Code Online (Sandbox Code Playgroud)
为什么这会产生错误?current_user.id如果第一个&&条件失败,它不应该达不到?
链接列表需要O(n)进行搜索,而BST采用O(log n).那么为什么要使用链表来处理冲突呢?我能想到的唯一原因是因为插入链表是O(1),而插入BST是O(log n).
假设我正在ng-repeat结束images,这是一个具有a src和caption属性的对象数组.
var images = [
{src: 'a.jpg', caption: 'a'},
{src: 'b.jpg', caption: 'b'},
{src: 'c.jpg', caption: 'c'},
{src: 'd.jpg', caption: 'd'},
{src: 'e.jpg', caption: 'e'},
{src: 'f.jpg', caption: 'f'},
{src: 'g.jpg', caption: 'g'},
{src: 'h.jpg', caption: 'h'},
{src: 'i.jpg', caption: 'i'},
{src: 'j.jpg', caption: 'j'},
];
Run Code Online (Sandbox Code Playgroud)
假设可能存在重复的图像,因此src+ caption组合不能确保唯一性.我想track by,但似乎除了之外没有办法做到这一点$index.
$index对我来说似乎是一个糟糕的解决方案 想象一下,第一张图片(a)被删除了.然后将改变所有后续图像的索引,因此必须重新渲染整个列表.这对于10个项目的列表来说并不算太糟糕,但它有更大的列表.
思考?
此外,如果确保src+ caption 是唯一的,该怎么办?我怎么能track by多个属性?
是否track by …
HTML
<form>
<input type='text'>
<button type='submit'>Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
$('form').on('submit', function(e) {
alert('submit');
e.preventDefault();
});
$('button').on('click', function(e) {
e.stopPropagation();
alert('clicked');
});
Run Code Online (Sandbox Code Playgroud)
观看精彩的视频后在这里,我明白,当我点击提交按钮,事件冒泡到窗体,然后将表单提交事件被触发.这解释了为什么在"提交"之前警告"点击"(在我添加e.stopPropagation()到按钮处理程序之前).
但是当我添加e.stopPropagation()到按钮处理程序时,"提交"仍然会被警告.为什么?我认为这stopPropagation可以防止事件冒泡到form,所以form.on('submit')听众不应该"听到"一个事件.
假设我有三个 div - A、B 和 c - 并且我想在用户单击“重新排序”时更改它们的顺序。例如,将 B 放在第一,C 第二,A 第三。在 Vue 中执行此操作最干净的方法是什么?
编辑:实际上,div 中有很多内容,因此使用{ divs: ['A', 'B', 'C'] }a之类的操作v-for会变得太混乱。
let app = new Vue({
el: '#app',
methods: {
reorder: function () {
},
},
});Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div>A</div>
<div>B</div>
<div>c</div>
<button v-on:click="reorder()">Reorder</button>
</div>Run Code Online (Sandbox Code Playgroud)
我尝试使用NPM做任何事情,最后都获得了npm ERR! Cannot find module './access-error.js'。救命!
我在尝试安装vue-chartjs时首先注意到它。我npm install vue-chartjs chart.js --save像文档所说的那样运行并收到错误:
code/premium-poker-tools [master?] » npm install vue-chartjs chart.js --save
npm ERR! code MODULE_NOT_FOUND
npm ERR! Cannot find module './access-error.js'
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/adamzerner/.npm/_logs/2019-03-12T23_56_46_114Z-debug.log
Run Code Online (Sandbox Code Playgroud)
然后,我尝试单独进行安装chart.js和安装vue-chartjs,但这给了我同样的错误。
然后我用谷歌搜索了这个问题。我试过了:
rm -rf node_modules
npm install
Run Code Online (Sandbox Code Playgroud)
而且没有用
我尝试重新安装NPM,但没有成功。我尝试通过删除 NPM sudo npm uninstall npm -g,然后计划在以后重新安装它,但是它没有用。我所做的一切都会给我npm ERR! Cannot find module './access-error.js'错误。
我的前端在 localhost:8080 上运行,我的服务器在 localhost:3000 上运行。我想从我的前端向服务器发送请求。当我这样做时,我收到以下错误:
从源“ http://localhost:8080 ”访问“localhost:3000/create-sharable-url”的 XMLHttpRequest已被 CORS 策略阻止:跨源请求仅支持协议方案:http、数据、chrome、chrome - 扩展,https。
我使用的是 http 协议,为什么会出现这个错误?
我正在尝试从localhost协议中发出请求,因此该错误使我认为这是不可能的。但另一方面,在开发模式下从客户端向服务器发送请求似乎是一个非常普遍的需求。
谷歌搜索似乎指向我在响应中设置 CORS 标头的方向。我已经在我的服务器上设置了标头(使用cors npm 包),但我想无论如何我都会试一试。不过对我没用。该访问控制允许来源:*浏览器扩展程序没有工作,也没有与禁用网络安全标志运行Chrome。
客户端JS
createSharableEquityCalculatorURL: function (storeState) {
let data = this._constructEquityCalculatorData(storeState);
return Vue.axios.post(`${process.env.BASE_API_URL}/create-sharable-url`, data);
},
Run Code Online (Sandbox Code Playgroud) 我正在尝试设计一个 vue.js 应用程序,它在从套接字接收到“new_state”消息时更新有关游戏状态的数据。套接字是使用 django 通道实现的。
这是代码的样子:
const ws_scheme = window.location.protocol == "https:" ? "wss" : "ws"
const gameSocket = new WebSocket(
ws_scheme +
'://'
+ window.location.host
+ '/ws/play/'
+ game_id
+ '/'
)
let vue = new Vue({
el: '#app',
data: {
current_turn: 0,
last_turn: -1,
current_card: 0,
last_card: -1,
number_of_stacked_cards: 0,
last_amount_played: 0,
won_by: -1,
my_cards: [],
other_players_data: {},
},
created() {
gameSocket.onmessage = function(e) {
data = JSON.parse(e.data)
this.current_turn = data.state.current_turn
this.last_turn = data.state.last_turn
// ... update the …Run Code Online (Sandbox Code Playgroud)