我是Firebase的新用戶。我正在嘗試使用Angular構建可編輯的TreeView,並將其內容保存到Firebase。內容存儲在包含節點列表的「樹」模型中,並且每個節點都包含其子節點列表等。將任意對象(角度模型)同步到Firebase的最簡單方法?
將此對象與FireBase同步的最簡單方法是什麼? 簡單的3-way綁定是否能做到這一點(只需使用。$ bind方法將我的模型綁定到firebase對象)?
這是我的代碼。添加節點時它是目前國內生產的錯誤:
TypeError: Cannot call method 'push' of undefined
的Javascript:
angular.module("myApp", ["firebase"]).
controller("TreeController", ['$scope', '$firebase', function ($scope, $firebase) {
var treeRef = new Firebase("https://flickering-fire-x.firebaseio.com/my-tree");
$scope.delete = function (data) {
data.nodes = [];
};
$scope.add = function (data) {
data.nodes.push({
text: "",
nodes: []
});
};
// Is this correct: ?
$scope.remoteTree = $firebase(treeRef);
$scope.remoteTree.$bind($scope, "tree");
}]);
HTML:
<script type="text/ng-template" id="tree_item_renderer.html">
<input type = "text" ng-model = "data.text" />
<button ng-click = "add(data)" > Add node </button>
<button ng-click="delete(data)" ng-show="data.nodes.length > 0">Delete nodes</button >
<ul>
<li ng-repeat = "data in data.nodes"
ng-include = "'tree_item_renderer.html'" ></li>
</ul>
</script>
<body ng-app="Application" ng-controller="TreeController">
<ul>
<li ng-repeat="data in tree" ng-include="'tree_item_renderer.html'"></li>
</ul>
</body>
你在哪裏設置$ scope.tree?此代碼是否在沒有Firebase的情況下工作? – rob
在最後2行的javascript(希望)。 – Ognjen
是的,這裏是沒有Firebase的jsfiddle:http://jsfiddle.net/oaprograms/CR9SH/ – Ognjen