0

я не могу показаться, чтобы получить следующий код для работы:Добавление переменной JS в каталог AngularJS?

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

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

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

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

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

Update:

После ссылки Штеффен, я не написал следующий код, но все-таки не повезло:

<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

http://stackoverflow.com/questions/19383725/how-to-access-global-js-variable-in-angularjs-directive – Steffen

+0

Пожалуйста, удалите фигурные скобки из нг-атрибут включения – Steffen

+0

использовать это в HTML : '

' ИЛИ '
' –

ответ

1

на основе Штеффена 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

попробовать это:

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

В angularjs, охват variable are access в HTML с использованием double curly brace notation {{ }}.

+0

Извините, это не работает для меня. – user6336941

+0

- это тема, определенная в вашем контроллере ?? если не try '$ scope.topic = topic;' в вашем контроллере. –

+0

Нет, я пытаюсь понять, как это сделать сейчас, поскольку я новичок в AngularJS.Я опубликую обновление, если не могу заставить его работать. – user6336941

0

Try следующим образом:

<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'; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^