Javascript 使用mustache和canjs比较来自两个不同上下文的值

Javascript 使用mustache和canjs比较来自两个不同上下文的值,javascript,canjs,canjs-view,Javascript,Canjs,Canjs View,假设我有下面这个胡子模板。联系人和类别基本上是一组对象: <script type="text/mustache" id="contactsList"> <ul class="clearfix"> {{#contacts}} <li class="contact span8"> <a href="javascript://" class="remove"><i class="icon-remove"><

假设我有下面这个胡子模板。联系人和类别基本上是一组对象:

<script type="text/mustache" id="contactsList">
  <ul class="clearfix">
    {{#contacts}}
    <li class="contact span8">
    <a href="javascript://" class="remove"><i class="icon-remove"></i></a>
    <form>
    <div class="row">
      <div class="span2">
        <img src="img/canjs.jpg" width="100" height="100">
      </div>
      <div class="span3">
        <input type="text" name="name" placeholder="Add Name" value="{{name}}">
        <select name="category">
          {{#categories}}
            <option value="{{data}}" {{sameCategory category data}}>
              {{name}}
            </option>
          {{/categories}}
        </select>
      </div>
      <div class="span3">
        <label>Address</label>
        <input type="text" name="address" value="{{address}}">
        <label>Phone</label>
        <input type="text" name="phone" value="{{phone}}">
        <label>Email</label>
        <input type="text" name="email" value="{{email}}">
      </div>
    </div>
    </form>
    </li>
    {{/contacts}}
  </ul>
</script>
不幸的是,我得到的是两个参数的对象,而不是字符串,因此我的相等条件失败。我做错了什么?除了registerhelper,还有更好的方法吗

支持数据:

var CONTACTS = [
  {
    id: 1,
    name: 'William',
    address: '1 CanJS Way',
    email: 'william@husker.com',
    phone: '0123456789',
    category: 'co-workers'
  },
  {
    id: 2,
    name: 'Laura',
    address: '1 CanJS Way',
    email: 'laura@starbuck.com',
    phone: '0123456789',
    category: 'friends'
  },
  {
    id: 3,
    name: 'Lee',
    address: '1 CanJS Way',
    email: 'lee@apollo.com',
    phone: '0123456789',
    category: 'family'
  }
];

var CATEGORIES = [
  {
    id: 1,
    name: 'Family',
    data: 'family'
  },
  {
    id: 2,
    name: 'Friends',
    data: 'friends'
  },
  {
    id: 3,
    name: 'Co-workers',
    data: 'co-workers'
  }
];

我从示例文章中获取了这些代码。

我在小提琴上检查您的代码,但我无法复制它,尽管您可能会得到can.computes,在获得值之前需要作为函数运行

然而,也就是说,对于can/view/bindings插件来说,助手是完全不必要的。只要在您的选择上设置can value=category,它就会自动神奇地选择正确的选项,并在更改时更新值

用小提琴演示:

{{categories}} {{name}} {{/类别}

不错!那就更好了!现在,对于类似的事情,我在哪里可以找到can值和类似内容的文档?在视野之内?胡子我刚开始阅读文档,没有遇到或可能错过了。can-value和can-KEY在can中。查看文档。
var CONTACTS = [
  {
    id: 1,
    name: 'William',
    address: '1 CanJS Way',
    email: 'william@husker.com',
    phone: '0123456789',
    category: 'co-workers'
  },
  {
    id: 2,
    name: 'Laura',
    address: '1 CanJS Way',
    email: 'laura@starbuck.com',
    phone: '0123456789',
    category: 'friends'
  },
  {
    id: 3,
    name: 'Lee',
    address: '1 CanJS Way',
    email: 'lee@apollo.com',
    phone: '0123456789',
    category: 'family'
  }
];

var CATEGORIES = [
  {
    id: 1,
    name: 'Family',
    data: 'family'
  },
  {
    id: 2,
    name: 'Friends',
    data: 'friends'
  },
  {
    id: 3,
    name: 'Co-workers',
    data: 'co-workers'
  }
];