小编Ada*_*ner的帖子

如何使用Rails控制台清除会话?

我已经看到了其他清除会话的方法,但我对从控制台进行操作感兴趣.

session ruby-on-rails

3
推荐指数
1
解决办法
1810
查看次数

如果flash name =='notice'不在rails视图中工作

<% flash.each do |key, msg| %>
  <% if key == 'notice' %>
      <%= content_tag :div, "<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</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'>&times;</button> #{msg}".html_safe, class: 'alert alert-danger alert-dismissable' %>
  <% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

不适合我.

  • 当我这样做的<% if true %>时候.
  • 当我输出时key,它说notice.

为什么不工作?

ruby-on-rails

2
推荐指数
1
解决办法
166
查看次数

undefined方法`id'表示false:FalseClass

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如果第一个&&条件失败,它不应该达不到?

ruby ruby-on-rails

2
推荐指数
1
解决办法
4441
查看次数

在处理哈希冲突时,为什么要在BST上使用链表?

链接列表需要O(n)进行搜索,而BST采用O(log n).那么为什么要使用链表来处理冲突呢?我能想到的唯一原因是因为插入链表是O(1),而插入BST是O(log n).

hashtable hashmap data-structures

2
推荐指数
2
解决办法
134
查看次数

Angular:当你需要"跟踪"但你没有一个独特的属性来跟踪时,你会怎么做?

假设我正在ng-repeat结束images,这是一个具有a srccaption属性的对象数组.

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个项目的列表来说并不算太糟糕,但它有更大的列表.

  1. 思考?

  2. 此外,如果确保src+ caption 唯一的,该怎么办?我怎么能track by多个属性?

  3. 是否track by …

javascript angularjs angularjs-ng-repeat angularjs-track-by

2
推荐指数
1
解决办法
137
查看次数

当我在提交按钮级别停止传播时,为什么表单提交事件会触发?

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')听众不应该"听到"一个事件.

javascript forms jquery events javascript-events

2
推荐指数
2
解决办法
1万
查看次数

在 Vue 中动态更改块级元素顺序的最佳方法?

假设我有三个 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)

javascript vue.js

2
推荐指数
1
解决办法
3802
查看次数

npm ERR!找不到模块“ ./access-error.js”

我尝试使用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'错误。

javascript npm

2
推荐指数
1
解决办法
2806
查看次数

你如何从本地主机发送跨源请求?

我的前端在 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)

javascript ajax xmlhttprequest cors

2
推荐指数
1
解决办法
2564
查看次数

从套接字接收消息时,Vue.js 数据未更新

我正在尝试设计一个 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)

javascript websocket vue.js

2
推荐指数
1
解决办法
616
查看次数