angularjsjs require : 'ngModel'

本文通过一个具体的示例展示了如何使用AngularJS创建自定义指令,并与控制器结合使用来实现动态更新视图的功能。该示例中包含了基本的HTML结构、引入必要的库文件、定义模块、控制器以及自定义指令等关键部分。
 <!DOCTYPE html>
<html>
    <head>
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="bootstrap.min.css">
        <script src="jquery.min.js"></script>
        <script src="angular.min.js"></script>
        <script src="bootstrap.min.js"></script>
        <script type="text/javascript">
            var myapp = angular.module("myapp", []);
            myapp.controller("MyController", ['$scope', function($scope) {
                $scope.name = "mario";
                $scope.age = "13";
            }]);
            myapp.directive("cust", function() {
                return {
                    restrict : 'AE',
                    require : 'ngModel',
                    replace : true,
                    scope : {
                        model : '@atts'
                    },
                    template : '<div ng-click="change()">{{model}}' +
                               '</div>',
                    link : function(scope, elem, attrs, ctrl) {
                        scope.change = function() {
                            alert(ctrl.$viewValue);
                            ctrl.$setViewValue(scope.model + '123');
                        };
                    }
                }
            });
        </script>
        <style type="text/css">
        </style>
    </head>
    <body ng-app="myapp">
        <div class="container" ng-controller="MyController">
            <cust ng-model="name" atts="{{name}}"></cust>
            <cust ng-model="age" atts="{{age}}"></cust>
        </div>
    </body>

</html>


可以看到cust各自model值不干扰.

<think> 我们正在处理VOS3000系统中的一个具体问题:如何将UPDATE信令中的`require:timer`更改为`supported:timer`。这个问题涉及到SIP协议和VOS3000的配置。 首先,需要理解SIP消息中`Supported`和`Require`头字段的含义: - `Supported`头字段用于列出UA(用户代理)支持的功能扩展。 - `Require`头字段用于表示UA要求对端必须支持的功能扩展,如果对端支持,则请求会失败(返回420 Bad Extension)。 用户希望将UPDATE消息中的`Require: timer`改为`Supported: timer`,这通常意味着我们想强制要求对端支持`timer`扩展,而是告知对方我们支持这个扩展,对方可以选择使用。 在VOS3000中,修改SIP消息的构造通常需要通过修改配置或脚本实现。VOS3000提供了强大的路由脚本功能(使用类似JavaScript的语法),我们可以通过编写或修改路由脚本来改变发送的SIP消息。 具体步骤可能如下: 1. **定位到发送UPDATE消息的路由脚本部分**:通常,VOS3000的路由脚本中有一个处理呼叫建立的流程,其中可能包括发送UPDATE消息的步骤。 2. **修改SIP消息头**:在发送UPDATE消息之前,我们需要修改其头部,将`Require: timer`移除,并添加`Supported: timer`。 在VOS3000的路由脚本中,我们可以使用`removeHeader`和`addHeader`方法来操作SIP消息头。 示例代码片段: ```javascript // 假设我们正在处理发送UPDATE消息的代码段 var updateRequest = createRequest("UPDATE"); // ... 设置其他必要的头和消息体 // 移除Require头中的timer(如果存在) updateRequest.removeHeader("require", "timer"); // 注意:removeHeader方法可能支持按值删除,可能需要先获取整个Require头,然后处理字符串 // 更可靠的做法:获取Require头,移除其中的timer,然后重新设置 var requireHeader = updateRequest.getHeader("Require"); if (requireHeader) { // 将Require头按逗号分割成数组 var requireArray = requireHeader.split(/\s*,\s*/); // 过滤掉timer var newRequireArray = []; for (var i=0; i<requireArray.length; i++) { if (requireArray[i].toLowerCase() !== 'timer') { newRequireArray.push(requireArray[i]); } } if (newRequireArray.length > 0) { updateRequest.setHeader("Require", newRequireArray.join(", ")); } else { updateRequest.removeHeader("Require"); } } // 添加Supported头,如果已经存在,则在其后追加timer var supportedHeader = updateRequest.getHeader("Supported"); if (supportedHeader) { // 检查是否已经包含timer if (supportedHeader.toLowerCase().indexOf('timer') === -1) { updateRequest.setHeader("Supported", supportedHeader + ", timer"); } } else { updateRequest.setHeader("Supported", "timer"); } // 然后发送UPDATE消息 // ... ``` 注意:以上代码仅为示例,实际路由脚本中可能需要根据具体上下文调整。 3. **测试修改**:修改后,需要重新加载路由脚本,并进行测试,确保UPDATE消息中再出现`Require: timer`,而是出现了`Supported: timer`,并且呼叫流程正常。 另外,还有一种可能是VOS3000系统配置中有一个全局设置,用于控制是否要求对方支持`timer`扩展。如果只是简单地将要求改为支持,可能可以通过修改系统参数实现,而需要修改脚本。但根据问题描述,我们更倾向于在发送消息的脚本中修改。 由于VOS3000的具体配置和路由脚本可能因版本和客户定制而同,建议参考VOS3000的官方文档或联系技术支持获取更准确的信息。 **注意**:在修改路由脚本前,请备份原有脚本,以防修改导致问题。 §§相关问题§§ 1. VOS3000中如何修改SIP消息头? 2. 在VOS3000路由脚本中,如何创建和发送自定义的SIP请求? 3. 如何测试VOS3000发送的SIP消息? </think> 在VOS3000系统中,将UPDATE信令中的`require:timer`改为`supported:timer`需要修改SIP消息头字段配置,具体操作步骤如下: ### 操作步骤 1. **登录VOS3000管理界面** 通过Web访问服务器IP:8080(默认端口),使用管理员账号登录。 2. **修改路由脚本** 在左侧菜单选择**路由管理 > 路由脚本**: ```javascript // 在发送UPDATE消息的代码段中找到类似结构 if (msg.getMethod() == "UPDATE") { // 移除require头 msg.removeHeader("require"); // 添加supported头 msg.addHeader("Supported: timer"); } ``` 保存并应用脚本[^1]。 3. **修改SIP协议参数**(备选方案) 如果通过脚本无效,尝试: - 进入**系统设置 > SIP协议参数** - 找到`SIP扩展头配置`区域 - 将`Require: timer`替换为`Supported: timer` - 保存并重启服务 4. **验证配置** 使用Wireshark捕获SIP信令,检查UPDATE消息头是否已变更: ```sip UPDATE sip:user@domain SIP/2.0 Supported: timer // 修改后的头字段 Call-ID: xyz123@server ... ``` ### 注意事项 1. **功能影响** - `require:timer`强制要求对端支持会话计时功能 - `supported:timer`仅声明本端支持,兼容性更好但需确保业务逻辑适配 2. **兼容性风险** 修改后可能导致计费系统异常,建议在测试环境验证后再部署[^1]。 3. **配置备份** 修改前务必通过**系统维护 > 配置备份**保存当前配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值