Добавление переменной JS в каталог AngularJS?

0

Я не могу заставить следующий код работать:

<script>alert(topic);</script> <!-- Outputs: "dynamics" -->

<div ng-include="'content/' + topic + '.html'"></div> <!-- Does not work. -->

Я вывел переменную в проблему, поскольку следующий код действительно работает:

<div ng-include="'content/' + 'dynamics' + '.html'"></div> <!-- Works. -->

Кто-нибудь знает, как я могу это сделать?

Обновить:

После ссылки Steffen, я написал следующий код, но все равно не повезло:

<script>
    alert(topic); // Outputs "dynamics"

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

    app.controller('MainCtrl', ['$scope', '$window', function ($scope, $window) {
        $scope.topic = $window.topic;
    }]);
</script>

<div ng-app="myapp" ng-controller="MainCtrl" ng-include="'content/' + 
    topic + '.html'"></div>  <!-- Does not work. -->

Благодарю.

  • 0
    stackoverflow.com/questions/19383725/...
  • 0
    Пожалуйста, удалите фигурные скобки из атрибута ng-include
Показать ещё 5 комментариев
Теги:
directory
angularjs-ng-include
ng-include

3 ответа

1
Лучший ответ

На основе Steffen jsfiddle, вот как я передал переменную JavaScript в AngularJS и использовал ее при определении каталога:

<script>
    // Create module.
    var app = angular.module('app', []);

    // Add controller to module.
    app.controller('MainCtrl', ['$scope', '$window', function ($scope, $window) {
        $scope.topic = $window.topic;
        console.log($scope.topic);
    }]);
</script>

<div ng-app="app" ng-controller="MainCtrl" ng-include="'content/' + 
    topic + '.html'"></div> <!-- Works! -->

Большое спасибо всем за их ответы. :)

0

Попробуйте сделать следующее:

<ng-include src="topic"> </ng-include>

Убедитесь, что вы определили $scope.topic = "whateveryouwant";

-----------ИЛИ-----------

Вы можете сделать это так:

<ng-include src="getTopic()"></ng-include>

контроллер:

function AppCtrl ($scope) {
  $scope.getTopic= function () {
      return 'partials/whatever.html';
  }
}
0

попробуй это:

<div ng-include="'content/{{topic}}.html'"></div>

В angularjs variable are access scope variable are access в HTML, используя double curly brace notation {{ }}.

  • 0
    Извините, это не работает для меня.
  • 0
    тема определена в вашем контроллере ?? если нет, попробуйте $scope.topic = topic ; в вашем контроллере.
Показать ещё 3 комментария

Ещё вопросы

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