Javascript 将参数从指令发送到AngularJS中的控制器
在oferta ut.controller.js的Javascript 将参数从指令发送到AngularJS中的控制器,javascript,angularjs,controller,Javascript,Angularjs,Controller,在oferta ut.controller.js的内部,我需要将状态从main.ut.ofertas更改为main.ut.resumen。然后选择一些内容并调用scope。单击ut result.directive.js中的Action。此操作应将参数发送到oferta ut.controller.js的,以便我可以将其与其他参数一起使用以转到另一个状态 这里有一些代码 servicio-ut.controller.js oferta-ut.controller.js 该操作的视图如下所示 &l
内部,我需要将状态从main.ut.ofertas
更改为main.ut.resumen
。然后选择一些内容并调用scope。单击ut result.directive.js中的Action
。此操作应将参数发送到oferta ut.controller.js的,以便我可以将其与其他参数一起使用以转到另一个状态
这里有一些代码
servicio-ut.controller.js
oferta-ut.controller.js
该操作的视图如下所示
<div flex>
<pager results="ctrl.ofertas.resultadoBusquedaUt" per-page="10" result-type="UT"></pager>
</div>
ut-result.directive.js
“严格使用”;
var utResultView=require('./ut result.view.html'),
imgPlaceHolder=require('../../img/hotel_holder.png');
函数hotelResult(util,$state,moment){
"ngInject",;
var指令={
模板URL:utResultView,
限制:“EA”,
范围:{
型号:'=',
params:“$watch
方法中侦听器函数的签名应该是函数(newVal,oldVal
,与问题中的情况不同。好的,谢谢你的建议,但我不确定问题是从那里来的。但无论如何,我会做更改。$watch
方法中侦听器函数的签名应该是函数(newVal,oldVal
,与问题中的操作不同。好的,谢谢你的建议,但我不确定问题是否出在那里。但无论如何,我会做更改。
'use strict';
function ofertasUtCtrl($scope, $stateParams, $state,
unidadTuristicaService, moment, util, SessionService, $analytics, $window) {
'ngInject';
var ctrl = this,
if (!$stateParams.servicio) {
$state.go('main.home');
} else {
ctrl.ofertaSeleccionada=null;
activate();
}
function activate() {
var fechaEntrada = $stateParams.fechaEntrada.getFullYear() + "-" +
($stateParams.fechaEntrada.getMonth() + 1) + "-" +
$stateParams.fechaEntrada.getDate();
var fechaSalida = $stateParams.fechaSalida.getFullYear() + "-" +
($stateParams.fechaSalida.getMonth() + 1) + "-" +
$stateParams.fechaSalida.getDate();
unidadTuristicaService.obtenerOfertasUt(
$stateParams.plan.id,$stateParams.servicio.code,
$stateParams.destino.id,
fechaEntrada,
fechaSalida,
$stateParams.duracion.id)
.then(function(ofertas){
for(var clave in ofertas.resultadoBusquedaUt){
ofertas.resultadoBusquedaUt[clave].fechaDesde = moment(fechaEntrada).format('DD/MM/YYYY');
ofertas.resultadoBusquedaUt[clave].fechaHasta = moment(fechaSalida).format('DD/MM/YYYY');
}
ctrl.ofertas = ofertas;
});
}
ctrl.confirmarServ = function() {
$analytics.eventTrack("Clic Siguiente", {
category: 'UT',
label: "Clic Servicios UT"
});
$state.go('main.ut.resumen', {
plan: $stateParams.plan,
destino: $stateParams.destino,
fechaEntrada: ctrl.fechaEntrada,
fechaSalida: ctrl.fechaSalida,
huespedes: ctrl.cantHuespuedes,
duracion: $stateParams.duracion,
servicio: ctrl.servicioInc
});
};
}
module.exports = ofertasUtCtrl;
<div flex>
<pager results="ctrl.ofertas.resultadoBusquedaUt" per-page="10" result-type="UT"></pager>
</div>
"use strict";
var utResultView = require('./ut-result.view.html'),
imgPlaceHolder = require('../../img/hotel_holder.png');
function hotelResult(util, $state, moment) {
'ngInject';
var directive = {
templateUrl: utResultView,
restrict: 'EA',
scope: {
model: '=',
params: '<'
},
link: link
};
return directive;
function link(scope) {
scope.icono = mapearIcono;
scope.filterHide = function() {
// ver si está filtrado por algun criterio
return scope.model.filterHide && scope.model.filterHide.length > 0;
};
var unbindWatch = scope.$watch("model", function(oldV, newV) {
if (newV) {
activate();
}
});
function activate() {
// iterador para estrellitas
scope.estrellas = [1,2,3,4,5].slice(0, scope.model.estrellas);
//Categoria UT
scope.categoriaUt = scope.model.categoriasUt;
scope.datosPrestador = scope.model.razonSocial + ' - CUIT: ' + scope.model.cuit;
scope.imgSrc = scope.model.urlImagen || imgPlaceHolder;
scope.imgError = imgPlaceHolder;
scope.precio = scope.model.precio? util.formatCurrency(scope.model.precio) : null;
scope.clickAction = function(model) {
// THIS ACTION
};
}
}
module.exports = hotelResult;