2016-05-27 3 views
0

Ich möchte die Schaltfläche nur anzeigen, wenn der angemeldete Benutzer den Wert true für das sendSMS-Objekt hat. Was soll ich in die ng-show im html tun, um das zu tun? Ich bin mir auch nicht sicher, ob ich den Wert für die Eigenschaft richtig platziert habe. Ich habe ein Viewer-Modell mit dem Benutzer als Basismodell erstellt und eine Eigenschaft namens sendSMS hinzugefügt, sodass ich diese Eigenschaft zum Aktivieren/Deaktivieren der Schaltfläche verwenden kann.Aktivierung/Deaktivierung der Tastenbasis für Werte einer Eigenschaft

create-sample-model.js

var async = require('async'); 
module.exports = function(app) { 
    //data sources 
    var db = app.dataSources.db; 
    //create all models 
    async.parallel({ 
    viewers: async.apply(createViewers), 
    }, function(err, results) { 
    if (err) throw err; 
    }); 
    //create reviewers 
    function createViewers(cb) { 
    db.automigrate('Viewer', function(err) { 
     if (err) return cb(err); 
     var Viewer = app.models.Viewer; 
     Viewer.create([ 
     {email: '[email protected]', password: 'example123', sendSMS: 'false'}, 
     {email: '[email protected]', password: 'User01', sendSMS: 'true'} 
     ], cb); 
    }); 
    } 
}; 

auth.js

angular 
    .module('app') 
    .factory('AuthService', ['Viewer', '$q', '$rootScope', function(Viewer, $q, 
     $rootScope) { 
    function login(email, password, sendSMS) { 
     return Viewer 
     .login({email: email, password: password, sendSMS: sendSMS}) 
     .$promise 
     .then(function(response) { 
      $rootScope.currentUser = { 
      id: response.user.id, 
      tokenId: response.id, 
      email: email 
      }; 
     }); 
    } 
    function logout() { 
     return Viewer 
     .logout() 
     .$promise 
     .then(function() { 
     $rootScope.currentUser = null; 
     }); 
    } 

    function register(email, password, sendSMS) { 
     return Viewer 
     .create({ 
     email: email, 
     password: password, 
     sendSMS: sendSMS 
     }) 
     .$promise; 
    } 

    return { 
     login: login, 
     logout: logout, 
     register: register 
    }; 
    }]); 
  • Dies ist die Auth im Dienste befindet Ordner

auth.js

angular 
    .module('app') 
    .controller('AuthLoginController', ['$scope', 'AuthService', '$state', 
     function($scope, AuthService, $state) { 
    $scope.Viewer = { 
     email: '', 
     password: '', 
     sendSMS: '' 
    }; 
    $scope.login = function() { 
     AuthService.login($scope.user.email, $scope.user.password) 
     .then(function() { 
      $state.go('report'); 
     }); 
    }; 
    }]) 
    .controller('AuthLogoutController', ['$scope', 'AuthService', '$state', 
     function($scope, AuthService, $state) { 
    AuthService.logout() 
     .then(function() { 
     $state.go('home'); 
     }); 
    }]) 
    .controller('SignUpController', ['$scope', 'AuthService', '$state', 
     function($scope, AuthService, $state) { 
    $scope.user = { 
     email: '', 
     password: '' 
    }; 

    $scope.register = function() { 
     AuthService.register($scope.user.email, $scope.user.password) 
     .then(function() { 
      $state.transitionTo('report'); 
     }); 
    }; 
    }]); 
  • Dies ist die Auth im Ordner Controller befindet

report.html

<button type="button" ng-show="currentUser.Viewer.sendSMS" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#myModal"> 
    Send sms for selected </button> 
+0

Ob Sie den Wert 'currentUser.Viewer.sendSMS' in report.html korrekt erhalten –

Antwort

0

Sie ng-disabled Eigenschaft auf die Schaltfläche verwenden können. Siehe ng-disabled. Die Schaltfläche kann basierend auf dem Bereichswert von sendSMS deaktiviert werden

Verwandte Themen