小编Emp*_*ets的帖子

在扩展firebase工厂以运行getTotal()函数时,我可以使用$$更新吗?

我是否可以收到$$更新返回的内容或者已更新$$运行一个函数,我可以在每次检查任务时收到该函数?

在一天结束时,我需要计算用户完成的任务数量.似乎firebase有自动同步数据的方法,但目前还不清楚具体如何做到这一点.当任务完成时,我遇到了$ watch和running函数的问题.这看起来像一个有趣的方式,但我不能把这些碎片放在一起.

以下是代码的plnkr:http://plnkr.co/edit/iAGvPHFWn2GSPGzBRpKh?p = preview

// Code goes here
angular.module('app', ['firebase']);

angular
  .module('app')
  .controller('main', function($scope, $firebase, $timeout, $window, ListWithTotal) {

  var ref = new Firebase("https://plnkr.firebaseio.com");
  $scope.listWithTotal = ListWithTotal(ref);

  $scope.addTask = function(task) {  
    $scope.listWithTotal.$add({
      title: task.title,
      complete: false,  
      tally: 0  
    });
    task.title = ''; 
  };

  $scope.completeTask = function(task) {  
    if (task.complete === true) {
      task.complete = true;
      task.tally = 1;
    } else { 
      task.complete = false;
      task.tally = 0;
    }
    $scope.listWithTotal.$save(task);
  };

  $scope.tallyCount = '';
  //it would be …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs firebase angularfire

11
推荐指数
1
解决办法
207
查看次数

我可以在角度材质中使用md-select来运行函数吗?

我遇到了一个奇怪的错误,但也许我正在使用md-select错误.我正在尝试转到新页面或根据ng-selected选项退出.不幸的是,我收到此错误:

Error: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
Run Code Online (Sandbox Code Playgroud)

HTML:

<md-select placeholder="DISRUPTIVE" ng-model="activePage" ng-change="changeSelected()">
   <md-option value="settings">Settings</md-option>
   <md-option value="logout">Sign Out</md-option>
 </md-select>
Run Code Online (Sandbox Code Playgroud)

控制器:

$scope.changeSelected = function(){
      switch ($scope.activePage) {
      case "settings":
        $location.path( '/account');
        break;
      case "logout":
        $scope.logout();
        break;
    }

    };
Run Code Online (Sandbox Code Playgroud)

导航到所选页面或注销后,我收到错误.md-select可以不用这种方式吗?

编辑:这与离开页面而不让md-select完成有关.如果我添加$ timeout,它会起作用.这不是理想的,但至少我可以继续前进:

$scope.changeSelected = function(){
      $timeout(function() {
        switch ($scope.activePage) {
        case "settings":
          $location.path( '/account');
          break;
        case "logout":
          Auth.logout();
          break;
      }
    }, 1000);
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angular-material

9
推荐指数
1
解决办法
3万
查看次数

尝试创建按日期排序的数组时,无法设置未定义错误的"某事"属性.

在Stack Overflow上发布了一个相关问题,@ Kato帮我解答了.我试图实现他的答案,但得到一个错误的不能设置未定义的"东西"的属性.

我做了一个尽可能详细的plnkr:http://plnkr.co/edit/M4zEjpZ4kqTKn1sHHMt6

//controller
angular.module('app').controller('DemoCtrl', function($scope, DatedList) {
  $scope.world = 'world';

  var listRef = new Firebase("https://talllly.firebaseio.com/");
  $scope.weeks = DatedList(listRef);

  $scope.addTask = function(){
    listRef.push({    
      text: $scope.task.text,
      week: 40,
      day: 2  
    });   
  };


});       

angular.module('app').service('DatedList', function($timeout) {
  return function(pathToList) {
    var list = {};  

    pathToList.on('child_added', function(snap) {
      $timeout(function() { // force Angular to run $digest when changes occur
        var data = snap.val();
        console.log(data);
        var week_number = data.week;
        var week_day = data.day;
        list[week_number][week_day] = data;
      });
    });

    //todo: …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs firebase

0
推荐指数
1
解决办法
1523
查看次数