更新领域上点击在AngularJS
问题描述:
我从火力地堡中提取数据的表。表格中的每一行都有可以被点击以执行特定功能的动作。其中一个操作是简单地将该行设置为已完成。我的firebase数据库中有一个字段,其中包含true
或false
的密钥,其值为read
。我需要点击图标(复选标记)并根据操作更新Firebase中的值。更新领域上点击在AngularJS
我见到目前为止以下内容:
var myProducts = new Firebase('https://url-to-firebase-db/products');
$scope.products = $firebaseArray(myProducts);
$scope.products = $firebaseArray(ref);
$scope.markCompleted = function markCompleted(product) {
product.read = !product.read;
$scope.products.$save(product);
};
在UI端:
<tbody ng-controller="ProductsCtrl">
<tr ng-repeat="product in products | orderBy: 'category'">
<td>{{ product.category}}</td>
<td>{{ product.task}}</td>
<td><img class="user" src="{{ product.user }}"></td>
<td>{{ product.status }}</td>
<td>{{ product.due | date:'MMMM dd' }}</td>
<td>{{ product.notes }}</td>
<td>{{ product.read }}<a class="fa fa-check" ng-
click="markCompleted(product)"></a>
<i class="fa fa-comment"></i>
<i class="fa fa-bars"></i>
</td>
</tr>
</tbody>
我不知道如何触发动作火力地堡更新域虽然。
答
尝试创建一个发生在一个product
的方法,并在您的模板指定:
<tbody ng-controller="ProductsCtrl">
<tr ng-repeat="product in products | orderBy: 'category'">
<td>
<button class="fa fa-check" ng-click="markCompleted(product)" >
</button>
</td>
</tr>
</tbody>
然后在你的控制器,你可以改变product.read
值,并使用$firebaseArray
保存:
$scope.products = $firebaseArray(ref);
$scope.markCompleted = function markCompleted(product) {
product.read = !product.read;
$scope.products.$save(product);
};
我可以看到这是哪里,但它仍然没有推动对firebase的改变。我已经在我的原始问题中包含了额外的代码,以显示如何声明我的firebase数组。 – Matt
让我看看,我会稍微举一个例子。 –
你可以创建一个这个问题的解决方案吗?因为使用'$ scope.products。$ save(product);'应该可以工作。 –