ng-repeat комментируется в браузере

0

У меня есть ng-repeat на div который показывает значение из массива в контроллере. div комментарий div когда я делаю элемент проверки в браузере. У меня есть внешний div с ng-controller на нем.

Это html файл:

    <!DOCTYPE html>
<html ng-app="myapp">
<head>
    <title></title>
        <script type="text/javascript" src="../js/angular.js"></script>
    <script type="text/javascript" src="../js/angular-route.js"></script>
     <script type="text/javascript" src="../js/controller.js"></script>
    <!-- <base href="localhost:5000/"/> -->
    <base href="/"/>

</head>
<body>


<div ng-controller="firstController">
    First name:<input type="text" ng-model="firstName"><br>
    Last name:<input type="" ng-model="lastName"><br>
    <input type="button" ng-click="loadView()" value="submit" name="">
    <p>{{firstName}}</p>
    <div ng-repeat="data in array">

            {{data.name}}

    </div>  
</div>
</body>
</html>

Это контроллер:

    var app = angular.module('myapp',['ngRoute']);
// var app = angular.module('myapp',[]);

app.config(function($routeProvider,$locationProvider){
    $routeProvider.when('/index',{
        templateUrl:'./view/index.html',
        controller:'firstController'
    })
    .when('/second/:firstName/:lastName',{
        templateUrl:'./view/second.html',
        controller:'secondController'
    })
    .otherwise({redirectTo:'/index'})
    $locationProvider.html5Mode(true);
})

app.controller('firstController',function($scope,$location){
    $scope.firstName = "";
    $scope.lastName="";

    $scope.loadView = function(){
        $location.path('/second/'+$scope.firstName+"/"+$scope.lastName);
    }

var arrays = [
            {name:ab}, {name:ba}, {name:ac}, {name:ca}
        ];
    $scope.array = arrays;
})
.controller('secondController',function($scope,$routeParams){
    $scope.firstName = $routeParams.firstName;
    $scope.lastName = $routeParams.lastName;
})

А также, когда я пытаюсь перейти к second.html при нажатии кнопки, который вызывает loadView() в контроллере, я вижу, что URL-адрес в адресной строке изменился, но он по-прежнему показывает содержимое первого html (index.html),

Теги:

2 ответа

0

div прокомментирует, когда объект пуст.

Убедитесь, что в вашем $scope.object есть данные, которые вы хотите.

0

Значения для массива должны быть в одинарных кавычках, если только они не являются переменными. Поэтому вместо {name:ab} просто выполните {name:'ab'}

Проверьте фрагмент

    var app = angular.module('myapp', []);
     // var app = angular.module('myapp',[]);

     app.controller('firstController', function($scope, $location) {
        $scope.firstName = "";
        $scope.lastName = "";

        $scope.loadView = function() {
          $location.path('/second/' + $scope.firstName + "/" + $scope.lastName);
        }

        var arrays = [{
          name: 'ab'
        }, {
          name: 'ba'
        }, {
          name: 'ac'
        }, {
          name: 'ca'
        }];
        $scope.array = arrays;
      })
      .controller('secondController', function($scope, $routeParams) {
        $scope.firstName = $routeParams.firstName;
        $scope.lastName = $routeParams.lastName;
      })
<!DOCTYPE html>
<html ng-app="myapp">

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

</head>

<body>


  <div ng-controller="firstController">
    First name:
    <input type="text" ng-model="firstName">
    <br>Last name:
    <input type="" ng-model="lastName">
    <br>
    <input type="button" ng-click="loadView()" value="submit" name="">
    <p>{{firstName}}</p>
    <div ng-repeat="data in array">

      {{data.name}}

    </div>
  </div>
</body>

</html>
  • 0
    Я скопировал и вставил ваш код. Я получаю сообщение об Error: $injector:modulerr Module Error
  • 0
    как это работает без подключения к контроллеру
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню