2013-09-24 3 views
3

Я хотел бы понять, как загрузить представление с контроллера?AngularJS: загрузить изображение с контроллера?

Пример гипотетический:

myFile.html 
<p>{{foo}}</p> 

.controller("myCtrl", function(){ 
    $scope.html = loadFileHere("My foo", "myFile.html"); 
    console.log($scope.html); 
}); 

I'd expect the output: 
<p>My foo</p> 

Возможно ли это сделать?

Спасибо!

+0

Вы хотите добавить еще один html-файл в 1-й html. –

ответ

2

Я предполагаю, что вы говорите о загрузке партиций? Вы бы не загрузили представление с помощью контроллера, хотя MAYBE вы могли бы ... Я бы использовал ваши маршруты для загрузки представления. Ваш контроллер вернет ваши данные с областью действия в ваш частичный вид, а затем вы загрузите его в div-ng-view или что-то еще. Так, например ...

в вашем app.js (или то, что вы называете это) предполагается, что ваш myfile.html находится в том же каталоге:

angular. 
    module('app', []). 
    config(['$routeProvider', function($routeProvider) { 
     $routeProvider. 
     when('/myFile', { templateUrl: 'myFile.html', controller: MyCtrl }). 
     otherwise({ redirectTo: '/' }); 
}]); 

Тогда, возможно, в controllers.js файла:

function MyCtrl($scope) { 
    $scope.foo = "My foo"; 
} 

И тогда в вашем myfile.html частичного:

<p>{{foo}}</p> 

И тогда ваш файл index.html может выглядеть someth ing:

<!doctype html> 
<html ng-app="app"> 
<head> 
    <script src="js/angular.min.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/controllers.js"></script> 
</head> 
<body> 
<div ng-controller="MyCtrl"> 
    <div class="container"> 

     <div ng-view></div> 

    </div> <!-- /container --> 
</div> 
</body> 
</html> 
+0

Спасибо, что посмотрели! Я предполагаю, что это плохая практика, но я стараюсь избегать писать некоторые html в моем контроллере. – punkbit

+0

@heldrida Я думаю, я просто не понимаю. В контроллере, который я написал выше, HTML отсутствует. Единственный html находится в индексе и частичном файле. Это может легко быть и в индексе, если вы не хотите использовать частичный ... Я только что предположил из вашего первого вопроса, что это то, что вы искали. – kevindeleon

+0

@heldrida Возможно, я понимаю, что вы сейчас говорите ... Я думаю, что то, о чем вы говорите, может быть выполнено с помощью директивы и функции компиляции ... посмотрите этот пост и посмотрите, полезно ли это http: // stackoverflow.com/questions/14846836/insert-an-angular-js-template-string-inside-an-element – kevindeleon

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