我使用JavaScript为Flickr照片搜索API创建了一个演示.现在我将它转换为AngularJs.我在互联网上搜索,发现下面的配置.
组态:
myApp.config(function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
Run Code Online (Sandbox Code Playgroud)
服务:
myApp.service('dataService', function($http) {
delete $http.defaults.headers.common['X-Requested-With'];
this.flickrPhotoSearch = function() {
return $http({
method: 'GET',
url: 'http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=3f807259749363aaa29c76012fa93945&tags=india&format=json&callback=?',
dataType: 'jsonp',
headers: {'Authorization': 'Token token=xxxxYYYYZzzz'}
});
}
});
Run Code Online (Sandbox Code Playgroud)
控制器:
myApp.controller('flickrController', function($scope, dataService) {
$scope.data = null;
dataService.flickrPhotoSearch().then(function(dataResponse) {
$scope.data = dataResponse;
console.log($scope.data);
});
});
Run Code Online (Sandbox Code Playgroud)
但我仍然得到同样的错误.以下是我尝试的一些链接:
XMLHttpRequest无法加载URL.Access-Control-Allow-Origin不允许原点
http://samurails.com/tutorial/cors-with-angular-js-and-sinatra/
编辑:
我在@Quentin的建议下在node.js中创建了一个代理服务器:
var http = require('http');
var url = require('url');
var fs = require('fs');
var server;
server = http.createServer(function (req, res) {
// your normal server …Run Code Online (Sandbox Code Playgroud) 如何使一个dropdown在yii2使用activeform和模式?由于所有方法都已改变yii2,如何在新的方法中完成?
如何在Yii2中删除特定网格视图的摘要和排序器.在Yii1.1中,我们可以通过设置模板属性来实现.在yii2中如何实现这一目标?
我有这个代码从db中找到一个用户状态为活动且role为user的用户
public static function findByUsername($username)
{
return static::find(['username' => $username, 'status' => static::STATUS_ACTIVE, 'role'=>'user']);
}
Run Code Online (Sandbox Code Playgroud)
我需要找到一个角色不等于"user"的用户.我怎样才能做到这一点?
PS:我正在使用YII2
例如,我创建了一个新页面,我想使用例如backbone.js,自定义css文件和一些图像集合.我应该在哪里宣布Yii2中的所有这些东西?我找到了AppAsset.php模块,但这只适用于css/js文件,当我在那里声明我的css/js文件和路径时,我没有注意到任何变化:
class AppAsset extends AssetBundle {
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/site.css',
'js/jquery.mobile-1.4.2.min.css',
];
public $js = [
'js/jsquery-2.1.0.min.js',
'js/jquery.mobile-1.4.2.min.js',
'js/script.js',
];
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
];
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我使用flickr照片搜索方法来检索公共照片.当我用jquery运行它,它工作正常,我得到正确形式的json对象.
{
"photos": {
"photo": [
{
.........
}
]
},
"stat": "ok"
}
Run Code Online (Sandbox Code Playgroud)
但是当我将它与AngularJs一起使用时,我得到了带有前缀jsonFlickrApi的相同对象
jsonFlickrApi({
"photos": {
"photo": [
{
......
}
]
},
"stat": "ok"
})
Run Code Online (Sandbox Code Playgroud)
我在AngularJs中使用的是:
myApp.service('dataService', function($http) {
delete $http.defaults.headers.common['X-Requested-With'];
this.flickrPhotoSearch = function() {
return $http({
method: 'GET',
url: 'https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=3f807259749363aaa29c2fa93945&tags=india&format=json&callback=?',
dataType: 'json'
});
}
});
Run Code Online (Sandbox Code Playgroud)
请告诉我如何将第二个JSON转换为第一个JSON.我可以在$http调用中做什么或者必须改变JSON对象.
我从yii2 doc中了解了一些事件.
我知道它是如何工作的,但我不知道在哪里使用它以及如何在我的开发中使用它.有一个发送电子邮件通知的例子,但我想要一个明确的例子,清楚这个想法在哪里使用以及如何使用它.
我的代码在我写的模型下面
const EVENT_NEW_USER = 'new-user';
public function sendMailto($event){
$this->sendMail(arguments);
// you code
}
Run Code Online (Sandbox Code Playgroud)
在控制器中:
use yii\base\Component;
use yii\base\Event;
public function someaction (){
$model->on(SignUpForm::EVENT_NEW_USER, [$model,'sendMailto'],['auth'=>$model_auth,'user_details'=>$user_details]);
$model->trigger(SignUpForm::EVENT_NEW_USER);
}
Run Code Online (Sandbox Code Playgroud) 我在yii2视图中遇到了困难的形式,其中一些字段显示或隐藏.它根据用户字段选择决定,在表单中选择选项.我用自定义jquery文件编写这个前端逻辑.一切都好.但是当我提交表单时 - 隐藏的字段保持不经过验证而且没有任何事情发生.如果字段是hiiden并且打开它,当字段可见时,我如何能够终止验证?
我正在使用Yii2 gridview小部件来显示数据.
我正在使用两个名为message和message_trigger的表.
在消息表列中object_model,Object_id.
在message_trigger中,列是object_id,object_name.
网格从表消息中获取值.所以网格字段是Object_model,Object_id.
现在我的问题是我需要表现出Object_name从表格message_trigger基础上,object_id从表中的消息.
在我的形式中,我使用了这样的网格
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'object_model',
'object_id',
['class' => 'yii\grid\ActionColumn', 'template' => '{view} {update} {delete} '],
],
]); ?>
Run Code Online (Sandbox Code Playgroud)
在我使用过的模型中
public function search($params){
$query = AlertTrigger::find()->where(['alert_id'=>$params['id']])->andWhere(['!=','status',2]);
$dataProvider = new ActiveDataProvider([
'query' => …Run Code Online (Sandbox Code Playgroud) yii2 ×8
php ×6
angularjs ×2
gridview ×2
javascript ×2
jquery ×2
assets ×1
cgridview ×1
cors ×1
flickr ×1
json ×1
validation ×1
yii ×1
yii2-model ×1