浏览代码

Pre-cache view for dot references

tags/0.7.3
Michael Jackson 12 年前
父节点
当前提交
b60aa6f0f1
共有 1 个文件被更改,包括 13 次插入17 次删除
  1. +13
    -17
      mustache.js

+ 13
- 17
mustache.js 查看文件

@@ -123,7 +123,7 @@
function Context(view, parent) {
this.view = view == null ? {} : view;
this.parent = parent;
this._cache = {};
this._cache = { '.': this.view };
}

Context.make = function (view) {
@@ -139,27 +139,23 @@
if (name in this._cache) {
value = this._cache[name];
} else {
if (name === '.') {
value = this.view;
} else {
var context = this;
var context = this;

while (context) {
if (name.indexOf('.') > 0) {
value = context.view;
while (context) {
if (name.indexOf('.') > 0) {
value = context.view;

var names = name.split('.'), i = 0;
while (value != null && i < names.length) {
value = value[names[i++]];
}
} else {
value = context.view[name];
var names = name.split('.'), i = 0;
while (value != null && i < names.length) {
value = value[names[i++]];
}
} else {
value = context.view[name];
}

if (value != null) break;
if (value != null) break;

context = context.parent;
}
context = context.parent;
}

this._cache[name] = value;


正在加载...
取消
保存