Не подключаеться скрипт
Не подключаться скрипт.
В симуляторе все нормально: 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, время: 23:17. |