【问题标题】:Angular two way data binding greetingAngular 双向数据绑定问候语
【发布时间】:2015-06-27 11:32:45
【问题描述】:

抱歉,这可能是一个非常基本的问题。我正在用 Angular 制作一个小演示测验项目。在第一页上,我有一个基本的双向数据绑定问候语(即您在一个框中输入您的姓名,它会欢迎用户,例如 <p> Welcome {{name}} </p>

如何保存输入的名称并将此欢迎带到下一页/模板?这是代码

<strong>Welcome</strong> {{email}}

  <p class="lead">Please enter your name </p>
      <body ng-app ng-init="email = 'John';">
      <label>enter name<input type="text" ng-model="firstName"/></label><br />
  </body>

这是我的路线

'use strict';


angular
  .module('angularQuizApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl'
      })
      [...]

我从一个 yeoman angular 脚手架开始,所以只更改了很少的代码。在此先感谢您好心的角度向导

【问题讨论】:

  • 我们不知道您是如何处理路由的...我们无法为您提供这么少的信息。
  • 道歉,应编辑:)
  • @Mobeale,我问它是因为一些开发人员处理服务器内部的路由。在那种情况下,使用服务是行不通的(但 cookie 很好)

标签: javascript angularjs angularjs-directive javascript-databinding


【解决方案1】:

为了轻松实现您的愿望,您可以创建一个保留用户名的服务:

angular.module('angularQuizApp').
 factory('StorageService',[
function(){

    var name = "";

    var _setName  = function(name){
        name = name;
    }:

    var _getName = function(){
        return name;
    };  

    return {
        setName : _setName,
        getName : _getName,
    }



}]);

然后在您的控制器中,从服务中调用正确的方法:

angular.module('angularQuizApp').
controller('MyController', ['$scope', 'StorageService',
   function($scope, StorageService) {
     $scope.name = StorageService.getName(); // or setName(name_value)
}]);

通过这种方式,此服务通过您的 Angular 应用程序保留用户的姓名。在这项服务中,您可以保存任何您想要的东西。 但是如果您退出应用程序,此对象/名称将被销毁。

如果您想持久保存对象,请查看 angular-storage :https://github.com/grevory/angular-local-storage

编辑

这是我制作的一个功能性应用程序: http://plnkr.co/edit/7ZzBYnKmV1xflzi81YQc?p=preview

【讨论】:

  • 您也可以将这种重要的值存储到 $rootScope 中。
  • 不幸的是,这无法正常工作,伙计 :( 双向绑定工作正常,但它没有将值保存到下一页
  • 马吕斯,非常感谢老兄! Plnkr 让它变得清晰明了
猜你喜欢
  • 2017-01-20
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-29
  • 2014-01-30
  • 2017-03-17
  • 1970-01-01
相关资源
最近更新 更多