当我尝试调试此代码时(http://jsfiddle.net/QWFGN/)
var foo = (function(numb) {
return {
bar: function() {
debugger;
return "something";
}
}
})(1);
foo.bar()
Run Code Online (Sandbox Code Playgroud)
Chrome中的开发人员工具与Firefox中的Firebug和IE中的开发人员工具的行为不同.问题是,变量numb
是不是在Chrome开发者工具可见的debugger;
线.但是,它在Firebug和IE中可见.如果我尝试输入numb
Chrome的控制台,我会得到:
ReferenceError: numb is not defined
Run Code Online (Sandbox Code Playgroud)
numb
当然,在这个闭包中可以看到,如果我将代码更改为(http://jsfiddle.net/QWFGN/1/)
var foo = (function(numb) {
return {
bar: function() {
debugger;
console.log(numb);
return "something";
}
}
})(1);
foo.bar()
Run Code Online (Sandbox Code Playgroud)
numb
现在也可以在Chrome中看到,我可以获得价值1
作为回应.
所以,我的问题是:为什么只有谷歌浏览器看不到从未使用的闭包变量?Google Chrome是否拥有自己的垃圾收集实现,或者仅与Google Chrome中的调试工具实施相关.
我正在尝试遵循角度最佳实践建议并使用指令来封装可重用的HTML元素.错误消息:
错误:模板必须只有一个根元素.是:partials/user/path/to/somedata.html
指令代码:
.directive('stDirectivename', function() {
return {
restrict: 'E',
replace: true,
// transclude: false,
template: 'partials/user/path/to/somedata.html'
};
})
Run Code Online (Sandbox Code Playgroud)
和模板:
<div ng-show="person.condition" class="someclass">
<span class = "personRoi">
<i class="anotherclass " ng-class="{'specialclass1': person.count>=0,'specialclass2':person.count<0}">
</i>{{person.somedata}}%
</span>
</div>
Run Code Online (Sandbox Code Playgroud)
在部分(模态的模板)中调用为:
<st-directivename></st-directivename>
当我在指令中替换模板url以获得简单的html字符串时.一切正常.不幸的是我不能这样做,对于涉及两个真正的模板'
和“
.此解决方案不会扩展到我计划的某些指令的更大模板.
此外,当我只是插入模板html而不是指令标签时,一切正常(我实际上是从现有的html中提取代码以使其可重用).
我在其他SO问题中读到这与在模板中有额外的空格/标签/注释有关.但我只是找不到这样的元素.
有人知道解决方案吗?我会很高兴得到任何帮助.
当我使用jsrender模板引擎时,我想在代码中添加一些注释,但我找不到注释标记.
我知道我可以使用html注释,但我不希望这些注释在html上呈现,因此不可用<!-- -->
.
所以,我想要的是:
<script id="row-template" type="text/x-jsrender">
{{// some comment that will not be rendered}}
{{if #data[0]}}
<tr>
{{for #data tmpl="#some-template"/}}
</tr>
{{/if}}
</script>
Run Code Online (Sandbox Code Playgroud) 我有一个Foo
带有两个属性和form
binder 的简单类:
import play.data.Form;
public class Foo {
public static Form<Foo> form = Form.form(Foo.class);
public String name;
public List<Bar> bars = new ArrayList<Bar>();
}
Run Code Online (Sandbox Code Playgroud)
哪个Bar
班级是:
public class Bar {
public String prop1;
public String prop2;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试发出POST ajax请求时:
jsRoutes.controllers.Test.duh().ajax({
data: {
name: "Test",
bars: [{prop1: "first"}]
}
});
Run Code Online (Sandbox Code Playgroud)
在duh方法中,在线:
Form<Foo> request = Foo.form.bindFromRequest();
Run Code Online (Sandbox Code Playgroud)
我收到错误:
[InvalidPropertyException:bean类[models.Foo]的无效属性'bars [0] [prop1]':索引属性路径'bars [0] [prop1]'中引用的属性既不是数组也不是List也不是Map; 返回值是[第一]]
AJAX请求的表单数据如下所示:
name:Test
bars[0][prop1]:first
Run Code Online (Sandbox Code Playgroud)
问题:在play框架中绑定复杂元素列表的正确方法是什么?此代码还需要什么工作?
当我通过jslint运行此代码时
(function () { return "helloooo"; }).call();
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:
出乎意料的'.'.
这是为什么?
当我将函数赋值给变量,然后调用它时我没有错误.
这个:
var cb = function () { return "helloooo"; };
cb.call();
Run Code Online (Sandbox Code Playgroud)
不返回任何错误.
但是,我想知道为什么我首先得到错误.道格拉斯·克罗克福德的神圣规则我打破了第一个例子吗?
我需要创建一个XML xPath解析器.所有解析都必须在客户端进行(使用javascript).我创建了一个执行此操作的javascript,在默认命名空间发挥作用之前,所有内容都可以正常运行.我根本无法查询具有默认命名空间的XML.
我在小提琴上创建了一个示例代码.在xmlString中是从服务器接收的XML字符串.在xPathString中,对收到的XML进行查询.
以下是一些场景:
请注意,其他人将使用此解析器,所以我真的想避免像这样的解决方案
var xPathString = "//*[local-name()='book']";
Run Code Online (Sandbox Code Playgroud)
并使他们能够使用简单的xPath表达式解析它.我想知道是否可以在javascript中指定默认名称空间前缀?
注意:小提琴上提供的示例在IE中不起作用.