javascript - ngView 中的模板调用不支持 Angular Directive(指令) stackoverflow

标签 javascript angularjs angularjs-directive ng-view

我的问题涉及如何使用AngularJS directives在里面调用的模板中ngView在 AngularJS 应用程序中。

定义:
该应用程序是单页的,因此它加载了一个 index.html,其中包含 DOM 中具有 ng-view 属性的 div 元素(模板 url)。

Main Page( index.html ) :

<html data-ng-app="App" data-ng-controller="AppCtrl">
  <head>
    <title>Angular App</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js"></script>
    <script src="js/app.js"></script> 
  </head>
<body>
<!-- primary nav -->
<a href="#/page1">Page 1</a>
<a href="#/page2">Page 2</a>
<a href="#/page3">Page 3</a>

<!-- display the view -->
<div ng-view>
</div>
</body>
</html>

app.js :

angular.module('App', [])

.controller('AppCtrl', function($rootScope, appLoading) {
    $rootScope.topScope = $rootScope;
    $rootScope.$on('$routeChangeStart', function() {
      appLoading.loading();
    });
  })

.config(function($routeProvider) {
    $routeProvider.when('/page1', {
      controller : 'Page1Ctrl',
      templateUrl : 'page1.html'
    })
    .when('/page2', {
      controller : 'Page2Ctrl',
      templateUrl : 'page2.html'
    })
    .when('/page3', {
      controller : 'Page3Ctrl',
      templateUrl : 'page3.html'
    })
    .otherwise({
      redirectTo: '/home'
    });
  })

page1.html :

<div class="form">
<form class="login-profile" method="post" action="" name="editfrm">
<input type="text" name="email" value="" id="txtemail" data-ng-model="email" required>
<input type="password" name="password" value="" id="txtpassword" data-ng-model="password" required>
<input type="button" value="Save" name="submit">
</form>
</div>

问题: ngView 中调用的模板 Url不支持任何 AngularJS deirective . data-ng-model="email" & data-ng-model="password"单击链接时在 ngView 中调用时不工作 <a href="#/page1">Page 1</a>

任何帮助将不胜感激。谢谢

最佳答案

如果没有看到 Page1Ctrl 的代码,很难判断,但似乎您正尝试使用 $rootScope 在 Controller 之间共享数据,不是吗?

好吧,别这样。为此目的使用$routeParams 或服务。例如:

// app controller   
.controller('AppCtrl', function(User) {
  User.set({email:'email', password:'password'}); // set user
})

// page 1 controller
.controller('Page1Ctrl', function($scope, User) {
  $scope.user = User.get(); // get user
})

// user service      
.service('User', function() {
  var user = null;
  return {
    get: function() {
      return user;
    },
    set: function(val) {
      user = val;
    }
  };
});

和相关的 HTML

<input type="text" 
       name="email" 
       data-ng-model="user.email" 
       required>
<input type="password" 
       name="password" 
       data-ng-model="user.password" 
       required>

关于javascript - ngView 中的模板调用不支持 Angular Directive(指令) stackoverflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30295942/

相关文章:

javascript - 解析元素标题中的html元素

javascript - AngularJS:如何在通过 $http 获取数据时禁用默认观察者

javascript - Angular 在使用 jq append 方法时是否编译指令?

javascript - 消除 jquery 和 .change 函数的 Dropdown 依赖

javascript - iPad 上 HTML5 应用程序的声音延迟

asp.net-mvc - AngularJS - 用户界面路由器 - MVC 5 - html5mode

javascript - 观察 bool 值时AngularJS指令双向数据绑定(bind)不起作用

Angular DataTables : $(. ..).DataTable 不是函数

php - 使用php脚本在任何网站的搜索框中输入关键字

javascript - Openlayers 中的 KML 层在本地主机上不起作用