Не подключаеться скрипт
Не подключаться скрипт.
В симуляторе все нормально: http://jsbin.com/fajoko/edit?html,js,output А в расширении нет. popup.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Angular JS</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <script src="angular.js">a</script>> </head> <body ng-app="jsbin"> <div ng-controller="DemoCtrl as vm"> <form novalidate> First Name:<br> <input type="text" ng-model="user.firstName"><br> Last Name:<br> <input type="text" ng-model="user.lastName" placeholder="name"> </form> <script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/weatherscript.js"></script> <script src="angular.js"></script> <h1><b>{{vm.data.city.name}}</b></h1> <h1><b>{{vm.data.list[0].temp.day}}</b></h1> </div> </body> </html> И скрипт. var app = angular.module('jsbin', []); app.controller('DemoCtrl', function($http) { var vm = this; var temp1=[]; var URL = 'http://api.openweathermap.org/data/2.5/forecast/daily'; var request = { method: 'GET', url: URL, params: { q: 'KansasCity', mode: 'json', units: 'imperial', cnt: '7', appid: '3ac1f68b653ffbf72a5f782420062771' } }; funcrion save(){ $http(request) .then(function(response) { vm.data = response.data; temp1[0]= angular.fromJson(response.data); console.log(temp1[0]); console.log(temp1[0].city.name); console.log(temp1[0].city.country); console.log(temp1[0].list[0].temp.day); }). catch(function(response) { vm.data = response.data; }); } } // console.log(temp); }); Ну и манифест { "manifest_version" : 2, "name" : "...", "short_name" : "...", "version" : "1.0", "author" : "...", "description" : "...", "icons" : { "16" : "icons/16x16.png", "32" : "icons/32x32.png", "48" : "icons/48x48.png", "64" : "icons/64x64.png", "128" : "icons/128x128.png" }, "content_scripts": [ { "matches": [ "*://*/*" ], "js": [ "/angular.js" ] } ], "background" : { "scripts" : ["background.html"], "persistent" : false }, "browser_action": { "default_title": "...", "default_icon": "icons/water.png", "default_popup": "popup.html" } } |
triest,
скрипт нормально назови а не angular.js |
|
Не помогло.
[url]<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Angular JS</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <script src="weather.js"></script>> </head> <body ng-app="jsbin"> <div ng-controller="DemoCtrl as vm"> <script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/weatherscript.js"></script> <script src="weather.js"></script> <h1><b>{{vm.data.city.name}}</b></h1> <h1><b>{{vm.data.list[0].temp.day}}</b></h1> </div> </body> </html> [/html] И скрипт. var app =angular.module('jsbin', []); app.controller('DemoCtrl',[ function($http) { var vm = this; var temp1=[]; var URL = 'http://api.openweathermap.org/data/2.5/forecast/daily'; var request = { method: 'GET', url: URL, params: { q: 'KansasCity', mode: 'json', units: 'imperial', cnt: '7', appid: '3ac1f68b653ffbf72a5f782420062771' } }; $http(request) .then(function(response) { vm.data = response.data; temp1[0]= angular.fromJson(response.data); console.log(temp1[0]); console.log(temp1[0].city.name); console.log(temp1[0].city.country); console.log(temp1[0].list[0].temp.day); }). catch(function(response) { vm.data = response.data; }); } // console.log(temp); ]); Ну и манифест { "manifest_version" : 2, "name" : "...", "short_name" : "...", "version" : "1.0", "author" : "...", "description" : "...", "icons" : { "16" : "icons/16x16.png", "32" : "icons/32x32.png", "48" : "icons/48x48.png", "64" : "icons/64x64.png", "128" : "icons/128x128.png" }, "content_scripts": [ { "matches": [ "*://*/*" ], "js": [ "weather.js" ] } ], "background" : { "scripts" : ["background.html"], "persistent" : false }, "browser_action": { "default_title": "...", "default_icon": "icons/water.png", "default_popup": "popup.html" } } |
triest,
1) зачем два раза подключаешь weather.js? 2) перенеси все в head в таком порядке - ангуляр - ангуляр weather - свой weather 3) Когда делаешь через 'as' у тебя все через твой vm делается то есть надо vm.user.firstName 4) Проверь закрытие тегов, скобочек ещё раз |
Вложений: 1
Непонятно. Запускаю сервер и ничего. Скрипт не цепляется.
http://zalil.su/3431183 |
triest,
Скидывай что сделал |
Так выше кинул: http://zalil.su/3431183
|
triest,
.... верстку скинь и кусок своего модуля |
|
Что в консоли: Error: Argument 'DemoController' is not a function, got undefined
|
triest,
Возьми и в своем саблайме поиском по фолдеру найди все DemoController и переименуй в DemoCtrl У меня вылазило TypeError: $http is not a function Поправил и у меня нормально отображается твой проблемный кусок с <h1><b>{{vm.data.city.name}}</b></h1> <h1><b>{{vm.data.list[0].temp.day}}</b></h1> Надо просто правильно дописать в weather.js // вместо app.controller('DemoCtrl',[ function($http) { // надо app.controller('DemoCtrl',['$http', function($http) { Выводит Kansas City 63.14 Ты понял что здесь происходит? Зачем всю эту фигню в квадратных скобочках писать? Вообще это не есть хорошо с точки зрения читаемости и поддержабельности кода Надо использовать $inject и именованную функцию |
Coriolan161 спасибо за совет. А как из JSON (поля weather.icon) получить стоку вида <img src='http://openweathermap.org/img/w/13d.png' alt='Icon depicting current weather.'> где 13d ноходяться в weather.icon Пробовал как vm.URL2="http://openweathermap.org/img/w/"+vm.data.weather.icon+".png";, но н евыходит. Код:http://jsbin.com/sofonovura/edit?html,js,console,output Решение найдено, если кому понадобиться: <h1><b>{{vm.data.city.name}}</b></h1> <h1><b>{{vm.data.city.country}}</b></h1> <font color="red"> <h1><b>temp.day:</b><h1> </font> <h1><b>{{vm.data.list[0].temp.day}}</b></h1> <font color="red"> <h1><b>weather.main:</b><h1></font> <h1><b>{{vm.data.list[0].weather[0].description}}</b></h1> <!-- влажность работает--> <font color="red"> <h1><b>humidity:</b><h1></font> <h1><b>{{vm.data.list[0].humidity}}</b></h1> <font color="red"> <h1><b> {{vm.data.list[0].weather[0].description}} |
triest,
почитай про взятие атрибута У <img>элементов src есть как свойство document.getElementById("my-image").src = "my-image.png"; |
Что-то не выходит:
<script> var icon=document.getElementByID(vm.data.list[0].weather[0]); <img src='http://openweathermap.org/img/w/'+icon+'.png'>; </script> ни так. var icon2= {{vm.data.list[0].weather[0].icon}}; var icon=document.getElementByID(vm.data.list[0].weather[0]); <img src='http://openweathermap.org/img/w/'+icon2+'.png'>; |
triest,
1) Что ты делаешь? Зачем <img> пихать в <script>? 2) getElementById, а не твоя getElementByID 3) Что это? var icon2= {{vm.data.list[0].weather[0].icon}}; 4) Ты меня достал |
Спасибо за помощь.
Решение: angular.js.mini надо скачать и закинуть в папку, а не давать ссылку на него в расширении. Для html ссылка работает, а расширение-нет. Манифест: Цитата:
-<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Angular JS</title> <link rel="stylesheet" type="text/css" href="style.css"> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> </head> <body ng-app="jsbin"> <div ng-controller="DemoCtrl as vm"> <script type="text/javascript" src="weather.js"></script> <cityStyle>{{vm.data.city.name}} </cityStyle><br> <countryStyle>Country:{{vm.data.city.country}}</countryStyle> <br> <img src={{vm.URL2}} alt={{vm.data.list[0].weather[0].description}} title={{vm.data.list[0].weather[0].description}} > <TempStyle> {{vm.data.list[0].temp.day}} °C </TempStyle> <br> <humidityStyle> Humidity: {{vm.data.list[0].humidity}} % </humidityStyle> <br> <PressureStyle> Pressure: {{vm.mmrts}} мм.рт.ст </PressureStyle> </div> </body> </html> var app = angular.module('jsbin', []); app.controller('DemoCtrl', function($http) { var vm = this; var temp1=[]; var URL2; var URL = 'http://api.openweathermap.org/data/2.5/forecast/daily'; var request = { method: 'GET', url: URL, params: { q: 'Petrozavodsk', mode: 'json', units: 'metric', cnt: '7', appid: '3ac1f68b653ffbf72a5f782420062771' } }; $http(request) .then(function(response) { vm.data = response.data; vm.URL2="http://openweathermap.org/img/w/"+vm.data.list[0].weather[0].icon+".png"; vm.mmrts=vm.data.list[0].pressure* 0.7500; }). catch(function(response) { vm.data = response.data; vm.URL2="http://openweathermap.org/img/w/"+vm.data.list[0].weather[0].icon+".png"; }); }); |
Часовой пояс GMT +3, время: 00:52. |