小编Bru*_*ira的帖子

从Angular App范围之外调用AngularJS函数

我已经看到了很多与此事有关的问题,但我尝试过的解决办法是:

在文件夹public中我有一个名为app.js的文件,我在这里定义我的AngularJS应用程序:

var app = angular.module('app', []);
var RectangleDim=30;

app.controller('MainCtrl', function($scope, $http) {
Run Code Online (Sandbox Code Playgroud)

在文件的最后,我做的引导如下:

angular.bootstrap(document.getElementById('body'), ["app"]);
Run Code Online (Sandbox Code Playgroud)

然后,在同一文件夹内和HTML内部,我对AngularJS应用程序的入口点是这样的:

 <div id="body">
<div ng-controller="MainCtrl">
    <div class="col-sm-6 col-md-6 col-lg-6" style="background-color: #D2D7D3">

        <div style="padding:25px;">
Run Code Online (Sandbox Code Playgroud)

然后,在另一个文件夹上,我有另一个JS文件,我需要调用AngularJS代码中定义的特定函数.该函数名为Draw(),当我单击AngularJS按钮时会触发它.

要简单地在另一个文件中调用该函数而不点击任何按钮我正在做这样的事情:

        var e = document.getElementById('body');
        var scope = angular.element(e).scope();
// update the model with a wrap in $apply(fn) which will refresh the view for us
        scope.$apply(function() {
            scope.Draw(NumQuest);
        });
        //fim
Run Code Online (Sandbox Code Playgroud)

编辑:为了使我的问题更清楚,我可以添加一些细节:

我只需要一个控制器和一个模块来控制我的整个应用程序,因为所需的所有操作(调用3个更新SVG图片的函数)是相对自包含的,所以我认为没有必要添加客户端代码的复杂性,这可能会让我和其他与我合作的人感到困惑.

回忆一下我需要的东西:

在一个应用程序中,有一个控制器,我有一个函数,Draw(someInputValue),它生成一个SVG图形.正在从文本输入框接收此功能的输入.

在另一个文件中,我有点击另一个文本框时执行的JS操作(例如,显示警告或创建其他文本框).我想要的是在单击文本框时将调用与Draw(输入)相关联.

也就是说,我想模拟当我点击一个从文本框中读取数字并执行某些操作的按钮时的行为,而是在文本框中手动输入输入并单击按钮,我只想单击一个文本框并执行相同的操作.

javascript angularjs

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

除非我提供CC编号,否则在Heroku中使用MongoLab不起作用?

我已经开发了一个nodeJS应用程序,使用Angular作为前端(使用MEAN堆栈并计划使用Bootstrap),当我尝试将其部署到Heroku时,每当我运行此行时:heroku addons:create mongolab我得到以下内容输出:

bruno@bruno-HP-epicsauce:~/herokuFinalApp$ heroku addons:create mongolab
 !    Please verify your account to install this add-on plan (please enter a credit card) For more information, see https://devcenter.heroku.com/categories/billing Verify now at https://heroku.com/verify 
bruno@bruno-HP-epicsauce:~/herokuFinalApp$
Run Code Online (Sandbox Code Playgroud)

在两个站点(mongolab和Heroku)中,它说它是免费的...我已经定义了名为MONGOLAB_URI的heroku env变量,如下所示:

bruno@bruno-HP-epicsauce:~/herokuFinalApp$ heroku config:set MONGOLAB_URI=mongodb://USER:PASS@ds041643.mongolab.com:41643/dbNAME
Setting config vars and restarting rocky-sea-9859... done, v4
MONGOLAB_URI: mongodb://USER:PASS@ds041643.mongolab.com:41643/dbNAME
bruno@bruno-HP-epicsauce:~/herokuFinalApp$ heroku config | grep MONGOLAB_URIMONGOLAB_URI: mongodb://USER:PASS@ds041643.mongolab.com:41643/dbNAME
bruno@bruno-HP-epicsauce:~/herokuFinalApp$
Run Code Online (Sandbox Code Playgroud)

它仍然无法工作......

在git存储库中,我有以下文件结构:

在此输入图像描述

应用程序正在侦听端口:process.env.PORT而不是一些本地的,并且package.json文件包含正确的依赖项,因为它是使用npm init自动生成的.

在procfile中我通常引用包含我的服务器端代码的文件:

web:node server.js

app.js包含Angular客户端代码.

是否有100%免费的方式在Heroku中部署应用程序并在某处托管数据库?

deployment heroku node.js

6
推荐指数
3
解决办法
6315
查看次数

标签 统计

angularjs ×1

deployment ×1

heroku ×1

javascript ×1

node.js ×1