Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 09.11.2016, 20:40
Интересующийся
Отправить личное сообщение для triest Посмотреть профиль Найти все сообщения от triest
 
Регистрация: 03.11.2016
Сообщений: 22

Что в консоли: Error: Argument 'DemoController' is not a function, got undefined
Ответить с цитированием
  #12 (permalink)  
Старый 09.11.2016, 21:39
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

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 и именованную функцию
Ответить с цитированием
  #13 (permalink)  
Старый 10.11.2016, 23:04
Интересующийся
Отправить личное сообщение для triest Посмотреть профиль Найти все сообщения от triest
 
Регистрация: 03.11.2016
Сообщений: 22


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}}
Ответить с цитированием
  #14 (permalink)  
Старый 11.11.2016, 11:27
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

triest,
почитай про взятие атрибута
У <img>элементов src есть как свойство
document.getElementById("my-image").src = "my-image.png";
Ответить с цитированием
  #15 (permalink)  
Старый 12.11.2016, 01:00
Интересующийся
Отправить личное сообщение для triest Посмотреть профиль Найти все сообщения от triest
 
Регистрация: 03.11.2016
Сообщений: 22

Что-то не выходит:
<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'>;
Ответить с цитированием
  #16 (permalink)  
Старый 12.11.2016, 23:43
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

triest,
1) Что ты делаешь? Зачем <img> пихать в <script>?
2) getElementById, а не твоя getElementByID
3) Что это? var icon2= {{vm.data.list[0].weather[0].icon}};
4) Ты меня достал
Ответить с цитированием
  #17 (permalink)  
Старый 13.11.2016, 16:33
Интересующийся
Отправить личное сообщение для triest Посмотреть профиль Найти все сообщения от triest
 
Регистрация: 03.11.2016
Сообщений: 22

Спасибо за помощь.

Решение: angular.js.mini надо скачать и закинуть в папку, а не давать ссылку на него в расширении.
Для html ссылка работает, а расширение-нет.

Манифест:
Цитата:
{
"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" : {

},

"browser_action": {
"default_title": "...",
"default_icon": "icons/water.png",
"default_popup": "popup.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";

    });


});

Последний раз редактировалось triest, 13.11.2016 в 19:56.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт редеректа но со своеобразной логикой sergofedor06 Javascript под браузер 4 15.09.2016 11:42
PHP/AJAX скрипт "Нaселение мoегo гoрoдa oнлaйн" rustik-yes Работа 2 01.12.2014 22:53
2 компьютера 1 хром и 1 скрипт Megatron13 Opera, Safari и др. 1 21.07.2013 19:12
Почему скрипт не работает с данными, которые вернул другой скрипт? Rooner jQuery 3 20.09.2012 14:56
Изменить скрипт Изучаю_JS Общие вопросы Javascript 0 12.02.2012 22:05