嗯,我对角度和微风都很新,我有一个名为Collection
的实体,其导航属性为products
,因为一个集合中可以包含很多产品。
所以,当我点击一个按钮时,我想将该产品添加到该系列中,但我还没有运气,我阅读了breeze.js文档并显然做了类似的事情
collection.products.push(product)
应该有用,但是对此没有任何想法?
这是实体定义
addType({
name: 'Collection',
defaultResourceName: 'collections',
dataProperties: {
id: { type: ID },
name: { max: 255, null: false },
slug: { max: 255 },
productsCount: { type: DT.Int16 }
},
navigationProperties: {
products: {
type: 'Product',
hasmany: true
}
}
})
这是实际尝试将项目添加到产品的代码
function addToCollection(product){
logSuccess('Product added to collection');
//trying to put a product into the collection products, with no luck
vm.collection.products.push(product);
}
这是列出产品的模板,用户可以将它们添加到集合中。
tbody
tr(ng-repeat="product in vm.products | inCollection:vm.filter_by")
td {{ product.master.sku }}
td {{ product.name }}
td {{ product.price | currency }}
td
img(data-ng-src="{{ product.master.images[0].mini_url }}")
td.text-center
.btn-group.btn-group-xs
a.btn.btn-default(data-ng-click="vm.addToCollection(product)")
i.fa.fa-plus
.btn-group.btn-group-xs
a.btn.btn-default(data-ng-click="vm.removeFromCollection(product)")
i.fa.fa-minus
我一直在调试,而且breeze没有返回任何goodAdds所以它不会将它添加到集合中,任何想法为什么这不是一个好的添加? BTW,集合N - > N个产品。
答案 0 :(得分:0)
据我所知,微风并不支持通过导航属性进行修改所以你需要的是2种类型..收集和属性..
addType({
name: 'Proeprty',
defaultResourceName: 'properties',
dataProperties: {
id: { type: ID },
collectionId: { type: int32}
},
navigationProperties: {
collection: {
type: 'Collection',
isScalar: true
}
}
})
然后当你想添加它时,你只需确保你设置collectionId Breeze的导航属性不像典型的关系