{}与导出功能我正在开发一个练习应用程序,我遇到了问题我何时需要导出一个对象{}而不是一个函数类?
场景示例:
我正在module使用对象样式构建一个简单的身份验证.
// file auth.js
module.exports = {
login: function() {
// code login
},
logout: function() {
// code logout
},
register: function() {
// code register
}
}
Run Code Online (Sandbox Code Playgroud)
这里我使用的是匿名函数样式
module.exports = function() {
return {
login: function() {
// code login
},
logout: function() {
// code logout
},
register: function() {
// code register
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我想需要这个模块我只是做:
var auth = require('auth');
auth.login(); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用变量$ this访问构造函数上的实例; 在所有其他方法中,当我打电话时看起来效果很好$this->event->method()但是在这个方法上它给我一个错误
不在对象上下文中时使用$ this
我刚刚对这个问题进行了研究,我发现的答案都是关于PHP的版本,但我的版本是5.4.可能是什么问题?
这是我尝试调用实例的方法.
// all protected variable $event , $team , $app
function __construct(EventTeamInterface $event,TeamInterface $team) {
$this->event = $event;
$this->team = $team;
$this->app = app();
}
/**
* @param $infos array() |
* @return array() | ['status'] | ['msg'] | ['id']
*/
public static function createEvent($infos = array()){
$create_event = $this->event->create($infos);
if ($create_event) {
$result['status'] = "success";
$result['id'] = $create_event->id;
} else {
$result['status'] = "error";
$result['msg'] = $create_event->errors();
}
return $result;
}
Run Code Online (Sandbox Code Playgroud) 我首先说我真的很新,angularJs我觉得它对Web应用程序的大环境非常有用.
经过一些研究和文档记录后,我得到了一些问题,首先它让我对如何将它实现到服务器端语言(在我的情况下基于laravel 4.1的PHP)感到困惑,因为它angularJs有路由和模板等...所以它是一个适当的框架,甚至可以独立工作.
让我们更好地了解我想要到达的地方,以了解这个2框架的工作流程.
第一个问题
我如何在一些资源上看到angularJs很容易在json中显示结果并与dom绑定.我甚至看到一些开发人员在第一次加载dom时使用angularJs打印出结果,而不是在laravel控制器上使用单个函数并使用laravel处理结果.
我认为它在兼容性方面不是很有用,因为角度正在工作IE 8及之后如果我禁用javascript同样我看不到结果.相反,如果我使用laravel 4如何第一个处理程序的第一个结果,我将永远看到它!这是我看到的一个例子.
路线Laravel
// set 2 types of route, the first for get the json results for do handle to Angular
// the second route for display the view
Route::get('users','UserController@getUsers');
Route::get('/','UserController@getIndex);
Run Code Online (Sandbox Code Playgroud)
UserController Laravel
public function getUsers() {
$users = User::all();
return $users; // return all users in json
}
public function getIndex() {
return View:make('index');
}
Run Code Online (Sandbox Code Playgroud)
AngularJs
module.controller('UserCtrl', function($scope,$http) {
users: function() {
return $http.get('/users').then(function(result){
return result.data;
});
}; …Run Code Online (Sandbox Code Playgroud) 我想在我的项目laravel上实现新的facebook API v 4.0.0.
设置访问我的应用程序的所有必要信息和凭据,何时是调用登录功能的时间:
$helper = new FacebookRedirectLoginHelper('http://mywebsite.dev');
$loginUrl = $helper->getLoginUrl();
Run Code Online (Sandbox Code Playgroud)
它给我一个例外
FacebookSDKException'会话未激活,无法存储状态.
所以我在那一行深入了解facebook的SDK类,并且有一个关于会话的检查:
if (session_status() !== PHP_SESSION_ACTIVE) {
throw new FacebookSDKException(
'Session not active, could not store state.'
);
}
Run Code Online (Sandbox Code Playgroud)
然后我不知道为什么会发生这种情况所以我试着在干净的路线上进行相同的检查并查看结果
Route::get('test',function() {
if (session_status() !== PHP_SESSION_ACTIVE)
{
return "is not active";
}
return "is active";
});
Run Code Online (Sandbox Code Playgroud)
它回归is not active为什么会发生这种情况?这样我就不能用laravel使用新的facebook API了?
我正在使用angular和browserify开展一个项目,这是我第一次将这两个工具结合使用,所以我想了解一下浏览器require文件的方法.
我们可能以不同的方式导入这些文件,到现在为止我用这种方式进行了实验:
角度应用:
app
_follow
- followController.js
- followDirective.js
- followService.js
- require.js
- app.js
Run Code Online (Sandbox Code Playgroud)
对于插件文件中的每个文件夹,我创建了一个require.js文件,在其中我需要该文件夹的所有文件.像这样:
var mnm = require('angular').module('mnm');
mnm.factory('FollowService', ['Restangular',require('./followService')]);
mnm.controller('FollowController',['$scope','FollowService',require('./followController')])
mnm.directive('mnmFollowers', ['FollowService',require('./followDirective')]);
Run Code Online (Sandbox Code Playgroud)
然后要求所有require.js被调用的唯一文件中的文件app.js生成bundle.js
题:
这种方式要求文件可以是一个很好的结构,或者当我需要测试时会有一些问题吗?我希望看到你通过angular和browserify实现良好结构的方法
我在单元测试一个具有在构造函数中调用的方法的类时遇到了麻烦.我不明白如何嘲笑这个.也许我应该使用phpUnit的'setUp'方法?
我正在使用Mockery库.有没有比这更好的工具?
class ToTest
{
function __construct() {
$this->methodToMock(); // need to mock that for future tests
}
// my methods class
}
Run Code Online (Sandbox Code Playgroud)
任何建议,将不胜感激.
我想问你是否存在与WHERE IN相反的命令,我想选择具有不同数组的所有行.
<?php
$data = array(1,2,3);
// normal query
$query = "SELECT * FROM table_1 WHERE id <> 1 && id <> 2 && id <> 3";
// how can i do the same query passing an array?
?>
Run Code Online (Sandbox Code Playgroud) 我试图显示和隐藏元素子元素,所以当我将鼠标悬停在<li>元素上时,我为所有元素设置了一个ng-show值false.如果我尝试使值true显示,它会显示所有子元素.我只想显示每个元素徘徊其孩子:
HTML代码:
<ul ng-init="show=false">
<li>
<a class="list-group-menu" href="#"><div class="icon-user"></div></a>
<div ng-show="show"> Profile </div>
</li>
<li>
<a class="list-group-menu" href="#"><div class="icon-scope"></div></a>
<div ng-show="show"> Scope </div>
</li>
<li>
<a class="list-group-menu" href="#"><div class="icon-job"></div></a>
<div ng-show="show"> Job </div>
</li>
<li>
<a class="list-group-menu" href="#"><div class="icon-login"></div>
<div ng-show="show"> Login </div>
</a>
</li>
<li>
<a class="list-group-menu" href="#"><div class="icon-register"></div></a>
<div ng-show="show"> Register </div>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
JQUERY CODE:
$('ul li').mouseenter(function() {
$(this).children('div').show();
});
$('ul li').mouseleave(function() {
$(this).children('div').hide();
});
Run Code Online (Sandbox Code Playgroud)