Я не могу заставить следующий код работать:
<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. -->
Благодарю.
На основе 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! -->
Большое спасибо всем за их ответы. :)
Попробуйте сделать следующее:
<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';
}
}
попробуй это:
<div ng-include="'content/{{topic}}.html'"></div>
В angularjs variable are access
scope variable are access
в HTML, используя double curly brace notation {{ }}
.
$scope.topic = topic ;
в вашем контроллере.