小编Mit*_*tya的帖子

Backbone默认值在属性更改时被引用

我有以下型号:

var Soq = Backbone.model.extend({
    default:{
        'name': 'something'
        , 'parents': []       //array will be passed by reference to attributes hash on new object instantiation
    } 
});
Run Code Online (Sandbox Code Playgroud)

我是javascript和骨干的新手,但是查看源代码我认为可能发生的事情是,当此模型的属性设置为默认值(backbone.js:137)并且默认值是对象时,它通过引用完成.这意味着当我做这样的事情时:

var soq = new Soq;
var parents = soq.get('parents');
parents.push('parent');               //changes defaults of the proto object

var soq2 = new Soq;
console.log(soq2.get('parents'););  //will output ['parent']
console.log(soq2.defaults.parents); //will output ['parent']
Run Code Online (Sandbox Code Playgroud)

我是否正确地理解了这一点,如果是这样,那么设置默认值作为对象的最佳方法是什么,而不会在将来的实例引用它们时使它们发生变化?

如果我不清楚或误解某事,请告诉我.在此先感谢您的时间.

javascript backbone.js

10
推荐指数
1
解决办法
2006
查看次数

chrome.cookies.get()参数0的值无效.属性'name'

我正在写一个jquery扩展,我正在做的事情:

var c = chrome.cookies.get({url:"some-web-site"});
Run Code Online (Sandbox Code Playgroud)

在我的popup.html文件中.

当我尝试运行扩展时,它会给出以下错误:

未捕获错误:参数0的值无效.属性'name':属性是必需的.

并给jqury.min.js:16作为位置(我包括来自谷歌CDN的jquery).

一旦我注释掉上面的代码,扩展运行正常.

有任何想法吗?

cookies jquery google-chrome-extension

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

使用Thinking Sphinx搜索索引模型对象的集合

我有一个arts_to User的技术模型,由Thinking Sphinx索引.

我的模型中还有一个方法返回一个Technique对象数组:

def possible_children(user)
    user.techniques - (self.children + [self])
end
Run Code Online (Sandbox Code Playgroud)

这只是采用用户拥有的技术,减去已经是'self'技术对象的子项的技术,以及'self'本身,并返回剩余的技术对象.

然后在控制器中我实例化可能的子集合,如下所示:

 @possible_children = @technique.possible_children(current_user).search params[:search]
Run Code Online (Sandbox Code Playgroud)

这将返回"未定义的方法'搜索'#"

不确定这是否相关,但发生的控制器不是TechniquesController.

我想要做的是搜索由Model方法返回的任意集合.

有任何想法吗?

如果我需要提供更多信息,请告诉我.谢谢.

thinking-sphinx ruby-on-rails-3

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

谷歌浏览器扩展名:popup.html javascript vs jquery

我正在玩扩展谷歌浏览器,我有一个简单的扩展名运行与以下popup.html文件:

<script type = "text/javascript">
    alert("hi from popup.html");
</script>

<body>
Hello World
</body>
Run Code Online (Sandbox Code Playgroud)

一旦我将带有url的src属性添加到google jquery CDN'alert("来自popup.html");' 不再运行.

我的清单文件如下:

{
  "name": "My First Extension",
  "version": "1.0",
  "description": "The first extension that I made.",
  "background_page": "background.html",
  "browser_action": {
    "default_icon": "icon.png",
"popup": "popup.html"
  },
  "permissions": [
"tabs","http://*/*","https://*/*"
  ]
}
Run Code Online (Sandbox Code Playgroud)

为什么添加jquery源会破坏弹出窗口?

jquery google-chrome

0
推荐指数
1
解决办法
2946
查看次数