rv-each not updating
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>
<script src="https://rawgit.com/mikeric/rivets/v0.9.4/dist/rivets.bundled.min.js"></script>
<div id="view">
<ul>
<li rv-each-user="collections:users">{ user:name } <span rv-if="user:manager">*</span></li>
</ul>
</div>
<button onclick="changeList();">
Update List
</button>
JavaScript
function onready(){
window.collections = new Backbone.Model({
users: new UserList([{id: 1, name: "Howard", manager: true}, {id: 2, name: "Fred"}, {id: 3, name: "Robin"}])
});
rivets.bind(document.getElementById("view"), {collections:collections});
}
function changeList(){
window.collections.get("users").reset([{id: 4, name: "Gary"}, {id: 5, name: "Benji"}, {id: 6, name: "John"}, {id: 7, name: "Richard"}, {id: 8, name: "Sal"}]);
}
var User = Backbone.Model.extend({
defaults: {
id: null
, name: null
}
});
var UserList = Backbone.Collection.extend({
model: User
});
/* global define: true */
(function (root, factory) {
'use strict';
if( typeof exports === 'object' ){
// CommonJS
factory(require('rivets'), require('Backbone'));
} else if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['rivets', 'Backbone'], factory);
} else {
// Browser globals
factory(root.rivets, root.Backbone);
}
})
(this, function (rivets, Backbone) {
'use strict';
var Model = Backbone.Model,
Collection = Backbone.Collection;
/**
* Resolves path chain
*
* for a, 'b.c.d' returns {model: a.b.c, key:'d'}
*
* @param {Model} model
* @param {String} keypath
*
* @returns {{model: Model, key: String}}
*/
function getKeyPathRoot(model, keypath) {
keypath = keypath.split('.');
while( keypath.length > 1 ){
model = model.get(keypath.shift());
}
return {
model: model,
key: keypath.shift()
};
}
/**
* @param {Model} model
* @param {String} keypath
* @param {*} [value]
*
* @returns {*}
*/
function prop(model, keypath, value) {
var root = getKeyPathRoot(model, keypath);
model = root.model;
if( !(model instanceof Model) ){
return model;
}
if (arguments.length === 2) {
return model.get(root.key);
}
model.set(root.key, value);
}
/**
* @param {String} action on or off
* @returns {Function}
*/
function observerFactory(action)...