小编Man*_*han的帖子

angularJS中$ http.get出错 - 成功不是函数

得到此错误:

angular.min.js:122 TypeError:$ http.get(...).成功不是getUserInfo(app.js:7)中的函数,在new(app.js:12)处于Object.invoke(angular.min) .js:43)在Q.instance(angular.min.js:93)at p(angular.min.js:68)at g(angular.min.js:60)at g(angular.min.js:61) )在angular(min.min.js:61)处于angular.min.js:60 at angular.min.js:21

这是我的代码:

var gitHub = angular.module('gitHub', []);

gitHub.controller('mainController', ['$scope', '$http', function($scope, $http) {

    var $scope.user = '';
    function getUserInfo($scope, $http){ 
        $http.get('https://api.github.com/users')
            .success(function (result) {
                $scope.user = result;
                console.log(result);
            });
    };
    getUserInfo($scope, $http);
}]);
Run Code Online (Sandbox Code Playgroud)

这是html

<!DOCTYPE html>
<html ng-app="gitHub">
<head>
    <title>Github Users Directory</title>
    <script src="angular.min.js"></script>
    <script src="app.js"></script>
</head>
<body>
    <div ng-controller="mainController">
        <div>
            <h1>GitHub Users</h1>
            Who do you want to search for?<input type="text" name="FindHim" ng-model="queryName" />
            <button ng-click="getUserInfo()">Search</button>
        </div>
        <div>
            {{ user …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-http angularjs-1.6

26
推荐指数
2
解决办法
5万
查看次数

未在localhost上接收Web上的FCM推送通知

所以我需要在我们的网络应用中实现网络推送通知,我已经在文档的帮助下在我的应用程序中成功设置了firebase云消息,我可以要求用户允许通知权限并获取令牌ID如果他接受了许可.

问题是当我尝试发送通知来测试生成的令牌时,我收到了一条消息发送的响应,但是我无法在客户端收到它.

我的index.html

<head>
  <script src="https://www.gstatic.com/firebasejs/4.4.0/firebase.js"></script>
  <link rel="manifest" href="./firebase.json">
</head>
 <script>
  if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('./firebase-messaging-sw.js').then(function(registration) {
      console.log('Firebase Worker Registered');

    }).catch(function(err) {
      console.log('Service Worker registration failed: ', err);
    });
  }
  </script>
Run Code Online (Sandbox Code Playgroud)

我已成功注册服务工作文件

我的App.component.ts

var config = {
            apiKey: "somekey",
            authDomain: "someproject-2.firebaseapp.com",
            databaseURL: "https://someproject-2.firebaseio.com",
            projectId: "someproject-2",
            storageBucket: "",
            messagingSenderId: "someid"
          };
          firebase.initializeApp(config);



        const messaging = firebase.messaging();

        messaging.requestPermission()
        .then(function() {
          console.log('Notification permission granted.');
          return messaging.getToken()
        })
        .then(function(result) {
            console.log("The token is: ", result);
        })
        .catch(function(err) {
          console.log('Unable to get permission to …
Run Code Online (Sandbox Code Playgroud)

javascript push-notification firebase-cloud-messaging angular

17
推荐指数
2
解决办法
9123
查看次数

无服务器:通过调用方法触发并忘记无法正常工作

我有一个无服务器的 lambda函数,在其中我想触发(调用)一个方法而忘记它

我用这种方式做

   // myFunction1
   const params = {
    FunctionName: "myLambdaPath-myFunction2", 
    InvocationType: "Event", 
    Payload: JSON.stringify(body), 
   };

   console.log('invoking lambda function2'); // Able to log this line
   lambda.invoke(params, function(err, data) {
      if (err) {
        console.error(err, err.stack);
      } else {
        console.log(data);
      }
    });


  // my function2 handler
  myFunction2 = (event) => {
   console.log('does not come here') // Not able to log this line
  }
Run Code Online (Sandbox Code Playgroud)

我注意到,直到并且除非我执行Promise returnin myFunction1,否则它不会触发myFunction2,但是不应该设置lambda InvocationType = "Event"意味着我们希望此操作被触发并忘记并且不关心回调响应吗?

我在这里想念什么吗?

非常感谢您的帮助。

javascript aws-lambda serverless aws-lambda-edge aws-serverless

8
推荐指数
1
解决办法
68
查看次数

Apollo:获取查询中某些过滤器的陈旧数据

我在这里面临一个很奇怪的问题。

我们有一个graphql搜索查询,它接受过滤器并提供项目列表。查询是这样的

allOpportunityV2(only: String, page: Int, per_page: Int, q: String,
  with: String, sort: String, filters: OpportunityFilter): OpportunityList
Run Code Online (Sandbox Code Playgroud)

OpportunityFilter是一个具有以下过滤器选择的对象

{
  duration: RangeInput,
  home_mcs: [Int],
  programmes: [Int]
}
Run Code Online (Sandbox Code Playgroud)

当我进行此查询时,对于某些过滤器组合,即使以前已查询过apollo,它也会发出网络请求,并且我在“网络”标签中获得了正确的响应,但是在apollo的成功方法中,我没有获得正确的响应。

预期结果:

查询成功时获得正确的响应

实际结果:

{
data: undefined
loading: false
networkStatus: 7
stale: true
}
Run Code Online (Sandbox Code Playgroud)

它只是随机地以某种组合发生,并且很难准确地再现。

apollo graphql apollo-client angular

7
推荐指数
1
解决办法
144
查看次数

Angular - Apollo:客户尚未定义

我正在使用apollo客户端进行graphql.我在AppApolloModule中设置了我正在AppModule中导入的客户端.我正在一个服务中进行查询,该服务也在AppModule中导入.虽然该服务在AppApolloModule运行之前运行,因此在进行查询时未初始化apollo并且我收到此错误

Error: Client has not been defined yet
Run Code Online (Sandbox Code Playgroud)

AppApolloModule

imports ....

export class AppApolloModule {

    constructor(
        apollo: Apollo,
        httpLink: HttpLink,
        private userService: UserService
    ) {
        console.log("apollo module")
        apollo.create({
            link: httpLink.create({ uri: `${environment.apiBase}/graphql?${this.myService.token}`}),
            cache: new InMemoryCache()
        })
    }

}
Run Code Online (Sandbox Code Playgroud)

应用模块

import { AppApolloModule } from './app.apollo.module';
import { MyService } from './services/my.service';

export class AppModule {
      constructor() {
        console.log("app module")
      }
}
Run Code Online (Sandbox Code Playgroud)

我没有得到两个控制台app模块和apollo模块,因为服务首先运行,它没有找到任何初始化的apollo应用程序,因此打破了代码.

如何以高效和标准的方式在服务或任何服务之前运行apollo?

javascript apollo graphql graphql-js angular

6
推荐指数
1
解决办法
2180
查看次数

当元素通过ngIf变为可见时触发事件

我在ngIf中有一些div,我只是想知道某种特定的div是否是现在可见/活动的div,例如事件触发器(如focus(不起作用))之类的东西,以及这个事件,我将设置一个变量或其他东西。

<div *ngIf="test === true" (focus)="myVariable = true">
</div>
Run Code Online (Sandbox Code Playgroud)

javascript event-handling dom-events angular angular-event-emitter

5
推荐指数
1
解决办法
7844
查看次数

使用 Rxjs 不同运算符将整个对象与嵌套进行比较

我有一个可观察对象,它向我传递一个 json 对象,我在该对象上使用了不同的运算符。如果整个对象与以前相同,我不想有重复项。我不能只使用像 id 这样的一个比较器,因为它的 id 可能相同,但内容不同。

所以我目前正在对对象进行字符串化,然后使用不同的,它工作得很好

有一个更好的方法吗?

someObservable
  .startWith(cachedCopy)
  .map(item => JSON.stringify(item))
  .distinct()
  .subscribe(item => {
      //I do some stuff!
     })
Run Code Online (Sandbox Code Playgroud)

json object rxjs rxjs5 angular

4
推荐指数
1
解决办法
5976
查看次数

CSS“top”属性不适用于百分比(%),但适用于像素(px)

body {
  background: #8E2800;
}
#main {
  background: purple;
  position: relative;
  color: white;
}
#title {
  background: grey;
  position: absolute;
  top: 50%;
  left: 50%;
  height: 40%;
  width: 50%;
}
Run Code Online (Sandbox Code Playgroud)
<div>
  <div id="main">
    <div id="title">
      <h2>Weather Forecast</h2>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

也可以在 codepen 上找到工作演示:http ://codepen.io/manzur/pen/RomyjK?editors=1100

html css

2
推荐指数
1
解决办法
4641
查看次数

Chrome 控制台错误?

这个问题没有任何疑问或问题。显然,我似乎在 chrome 控制台上偶然发现了一个错误,

我使用这个代码:

console.log("Before: ", this.selectedScorecard.scorecard_attributes);
let attribute = this.selectedScorecard.scorecard_attributes.find(item => item.id === null || item.id === undefined)

if(attribute) {
   let length = this.selectedScorecard.scorecard_attributes.length;
   this.selectedScorecard.scorecard_attributes.splice(length-1, 1);
   console.log("After: ", this.selectedScorecard.scorecard_attributes);
}
Run Code Online (Sandbox Code Playgroud)

好的,所以属性是一个数组,它最初是一个长度为 2 的数组。现在我从数组中拼接一个项目并在拼接前后打印它的值。

在数组之前的片段中的 chrome 控制台中,它显示 (2) 表示长度为 2,但在数组本身中,它显示长度为 1,并且在“数组的控制台之前”中也只有一项,而事情显然是预期在“After console”中我附上了一张图片以便更好地理解 在此处输入图片说明

我很好奇,有人对此有任何想法吗?有没有人遇到过这个问题,还是只有我一个人注意到了?

javascript web-inspector google-chrome-devtools ecmascript-6

2
推荐指数
1
解决办法
564
查看次数